2024--Django平台开发-Redis集群(十一)

内容回顾

  • 主从复制。

  • 哨兵:实例启动了,哨兵节点没启动,Python通过redis-py连接报错。一定要确保实例节点和哨兵节点都启动了。

  • 搭建集群用的是虚拟机的多台centos服务器,你在跟着学习的时候,一定要全部都是虚拟机,或者全部都是云服务,不能混用。而且,尽量保证多台服务器的配置是一致的。

    • 软件的版本也要一致。
  • 虚拟机的静态IP配置:

    • 静态IP配置上了,所有的配置都是没问题的,但是静态IP就是不出来。
      • 是否是公司电脑,安装了特殊的安全、监控软件之类的,导致。
      • 是否开启了科学上网,如果是的话,先把你的代理关一关。
      • VMware的Windows服务中的相关服务是否是运行的。
      • 千万不要把你的虚拟机安装到移动硬盘上...
      • Python中的路径操作,尽量避开e盘,软件安装、项目也不要放到这个e盘上。

Python操作Redis集群

https://www.cnblogs.com/Neeo/articles/17587765.html#连接集群

python 复制代码
from redis import RedisCluster
from redis.cluster import ClusterNode

if __name__ == '__main__':


    # 集群所有(主从)节点的列表
    nodes = [
        ClusterNode("192.168.10.150", port=6380), ClusterNode("192.168.10.150", port=6381),

        ClusterNode("192.168.10.151", port=6380), ClusterNode("192.168.10.151", port=6381),

        ClusterNode("192.168.10.152", port=6380), ClusterNode("192.168.10.152", port=6381),
    ]

    # 可以给定全部集群中的机器IP信息
    cluster = RedisCluster(startup_nodes=nodes, decode_responses=True)

    # 也可以随便指定一个节点(不管主从都可以,它会自动定位)
    # cluster = RedisCluster(host="192.168.10.150", port=6381, decode_responses=True)
    cluster.set("user", "zhangkai")
    print(cluster.get("user"))

集群自动部署

  1. 有个交互提示,需要手动输入yes
bash 复制代码
redis-cli --cluster create 192.168.10.150:6380 192.168.10.151:6380 192.168.10.152:6380 192.168.10.150:6381 192.168.10.151:6381 192.168.10.152:6381 --cluster-replicas 1
  1. 优化yes,用echo命令处理
bash 复制代码
echo "yes"|redis-cli --cluster create 192.168.10.150:6380 192.168.10.151:6380 192.168.10.152:6380 192.168.10.150:6381 192.168.10.151:6381 192.168.10.152:6381 --cluster-replicas 1
  1. 优化yes,用的是--cluster-yes来优化,推荐使用这个
bash 复制代码
redis-cli --cluster create 192.168.10.150:6380 192.168.10.151:6380 192.168.10.152:6380 192.168.10.150:6381 192.168.10.151:6381 192.168.10.152:6381 --cluster-replicas 1 --cluster-yes
# --cluster-replicas 1 表示一个主节点有一个从节点
# --cluster-yes 表示有交互的提示中,自动输入yes

集群参考:https://www.cnblogs.com/Neeo/articles/10840096.html

补充一个Python3.11解释器在centos7系统的安装

https://www.cnblogs.com/Neeo/articles/12829625.html#编译安装python311

大key和热key分析参考:https://www.cnblogs.com/Neeo/articles/17643361.html

关于Redis的所有的笔记,都可以参考:https://www.cnblogs.com/Neeo/p/10864123.html#database

关于Redis的所有的配置都可以参考这个文件

在安装目录中:

bash 复制代码
[root@cs redis-5.0.7]# pwd
/opt/redis-5.0.7
[root@cs redis-5.0.7]# cat redis.conf    # 这个配置文件是最全的

但我们没有用这个文件,用的是:

bash 复制代码
[root@cs opt]# cat /opt/redis6379/conf/redis6379.conf 
daemonize yes
bind 192.168.10.150 127.0.0.1
port 6379
pidfile "/opt/redis6379/pid/redis6379.pid"
logfile "/opt/redis6379/logs/redis6379.log"
dir "/data/redis6379"
save 900 1
save 300 10
save 60 10000
dbfilename "redis.rdb"
appendonly yes
appendfilename "redis.aof"
appendfsync everysec
相关推荐
vibag2 分钟前
构建智能体与工具调用
python·语言模型·大模型·langgraph
小途软件6 分钟前
高校宿舍访客预约管理平台开发
java·人工智能·pytorch·python·深度学习·语言模型
-dcr14 分钟前
49.python自动化
运维·python·自动化
code bean22 分钟前
Flask图片服务在不同网络接口下的路径解析问题及解决方案
后端·python·flask
Chasing Aurora41 分钟前
Python后端开发之旅(三)
开发语言·python·langchain·protobuf
于越海2 小时前
材料电子理论核心四个基本模型的python编程学习
开发语言·笔记·python·学习·学习方法
困知勉行19852 小时前
springboot整合redis
java·spring boot·redis
中年程序员一枚2 小时前
Springboot报错Template not found For name “java/lang/Object_toString.sql
java·spring boot·python
飞鸟真人3 小时前
Redis面试常见问题详解
数据库·redis·面试
AI Echoes4 小时前
LangChain 非分割类型的文档转换器使用技巧
人工智能·python·langchain·prompt·agent