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
相关推荐
都叫我大帅哥1 小时前
Python的Optional:让你的代码优雅处理“空值”危机
python
曾几何时`3 小时前
基于python和neo4j构建知识图谱医药问答系统
python·知识图谱·neo4j
写写闲篇儿6 小时前
Python+MongoDB高效开发组合
linux·python·mongodb
杭州杭州杭州7 小时前
Python笔记
开发语言·笔记·python
路人蛃8 小时前
通过国内扣子(Coze)搭建智能体并接入discord机器人
人工智能·python·ubuntu·ai·aigc·个人开发
qiqiqi(^_×)9 小时前
卡在“pycharm正在创建帮助程序目录”
ide·python·pycharm
Ching·9 小时前
esp32使用ESP-IDF在Linux下的升级步骤,和遇到的坑Traceback (most recent call last):,及解决
linux·python·esp32·esp_idf升级
小毛驴8509 小时前
redis 如何持久化
数据库·redis·缓存
吗喽15434518810 小时前
用python实现自动化布尔盲注
数据库·python·自动化
hbrown10 小时前
Flask+LayUI开发手记(十一):选项集合的数据库扩展类
前端·数据库·python·layui