1.安装配置redis redis.conf
redis.conf 放哪都可以 编译安装的话,就在redis源码的目录
port 6379
bind 0.0.0.0
dir 指明redis数据文件存放路径
daemonize yes #将redis在后台运行,不占用一个终端
protomode yes #安装模式
requirepeass s1466 #redis密码登录
pidfile #存放redis进程id的文件
RDB持久化的参数
AOF持久化的参数
指明master的ip和端口信息
slaveof 127.0.0.1 6380
redis支持多实例
redis-server redis-6379.conf redis-server redis-6380.conf redis-server redis-6381.conf
发布订阅
发布者 订阅者 频道
主从同步
redis主从 优先 1.保证数据安全,主从机器两份数据 一主多从 2.读写分离,缓解主库压力 主redis,可读可写 slave身份,只读
缺点 1.手动主从切换 假如主库挂了,得手动切换 master 192.168.12.10 挂了
slave1 192.168.12.11 主库挂了,我得手动选一个slave为新的master 1.配置主库地址 slaveof 192.168.12.12 6380
slave2 192.168.12.12
1.取消12的从库身份 slaveof no one
2.准备一个值班人,他去检测,redis主从机制,是否宕机,值班人来做这个主从切换的事
redis哨兵配置: 1.准备3个redis实例文件 -rw-r--r-- 1 root root 145 12月 11 09:14 redis-6379.conf -rw-r--r-- 1 root root 115 12月 11 09:13 redis-6380.conf -rw-r--r-- 1 root root 93 12月 11 09:13 redis-6381.conf
redis-6379配置文件内容如下
cat redis-6379.conf
port 6379
daemonize yes
logfile "6379.log"
dbfilename "dump-6379.rdb"
dir "/var/redis/data/"
daemonize yes
#其余6380、6381配置文件,端口确保不同,且配置上主从参数
slaveof 127.0.0.1 6379
2.启动三个redis实例 1030 redis-server redis-6379.conf 1031 redis-server redis-6380.conf 1032 redis-server redis-6381.conf
3.检查三个redis实例的主从身份关系 1071 redis-cli -p 6379 info replication 1071 redis-cli -p 6380 info replication 1072 redis-cli -p 6381 info replication
4.配置三个哨兵 -rw-r--r-- 1 root root 560 12月 11 09:13 redis-sentinel-26379.conf -rw-r--r-- 1 root root 560 12月 11 09:13 redis-sentinel-26380.conf -rw-r--r-- 1 root root 560 12月 11 09:13 redis-sentinel-26381.conf
哨兵配置文件,几乎一致,仅有端口区别
// Sentinel节点的端口
port 26379
dir /var/redis/data/
logfile "26379.log"
// 当前Sentinel节点监控 127.0.0.1:6379 这个主节点
// 2代表判断主节点失败至少需要2个Sentinel节点节点同意
// mymaster是主节点的别名
sentinel monitor mymaster 127.0.0.1 6379 2
//每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达
sentinel down-after-milliseconds mymaster 30000
//当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,
原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
sentinel parallel-syncs mymaster 1
//故障转移超时时间为180000毫秒
sentinel failover-timeout mymaster 180000
5.启动三个redis哨兵
1053 redis-sentinel redis-sentinel-26379.conf 1054 redis-sentinel redis-sentinel-26380.conf 1055 redis-sentinel redis-sentinel-26381.conf
6.检查redis哨兵身份信息,检查主从节点健康状态
1058 redis-cli -p 26379 info sentinel 1059 redis-cli -p 26380 info sentinel 1060 redis-cli -p 26381 info sentinel
7.配置正确后,杀死master节点,查看主从身份切换是否正常
1,2,3,4,5,6...100
1%3 1 2%3 2 3%3 0
将余数为1分给一匹马
讲余数为2的分给马2
余数为0的分给马3
ruby语言脚本,一键自动安装redis-cluster
redis-cluster就是什么
将我所有的数据,keys *
分配6匹马,6匹马的身份信息
3个主
3个从
redis-cluster使用的哈希槽算法,将数据分为0~16383的槽位
将所有的keys 分配到这些槽位当中
安装配置手册 1.准备6个redis节点,也就是准备6匹马
redis可以自定制端口,你可以用6379,也可以用7000
-rw-r--r-- 1 root root 185 12月 11 09:51 redis-7000.conf -rw-r--r-- 1 root root 185 12月 11 09:52 redis-7001.conf -rw-r--r-- 1 root root 185 12月 11 09:52 redis-7002.conf -rw-r--r-- 1 root root 185 12月 11 09:52 redis-7003.conf -rw-r--r-- 1 root root 185 12月 11 09:52 redis-7004.conf -rw-r--r-- 1 root root 185 12月 11 09:52 redis-7005.conf
查看redis配置文件,修改这6个文件的端口不同
sed 's/7000/7001/g' redis-7000.conf #此时还未生效,只返回处理结果
-i 参数,写入到文件 insert
sed -i 's/7000/7001/g' redis-7000.conf #对这个文件修改
sed 's/7000/7001/g' redis-7000.conf > redis-7001.conf
sed linux处理字符串的命令
's/7000/7001/g' 第二空格 放入你想替换的内容
s 代表替换指令
/你想换的内容/你想替换后的内容/
g 全局替换 globol
redis-7000.conf 操作的对象,将这个文件内的所有7000替换为7001
2.准备6个配置文件redis.conf -rw-r--r-- 1 root root 182 12月 11 10:01 redis-7000.conf -rw-r--r-- 1 root root 182 12月 11 10:01 redis-7001.conf -rw-r--r-- 1 root root 182 12月 11 10:02 redis-7002.conf -rw-r--r-- 1 root root 182 12月 11 10:02 redis-7003.conf -rw-r--r-- 1 root root 182 12月 11 10:02 redis-7004.conf -rw-r--r-- 1 root root 182 12月 11 10:02 redis-7005.conf
配置文件内容如下:
port 7000
daemonize yes
dir "/opt/redis/data"
logfile "7000.log"
dbfilename "dump-7000.rdb"
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-require-full-coverage no
6个配置文件,仅仅是端口的区别,可以使用sed命令快速生成配配置文件
1117 sed 's/7000/7001/g' redis-7000.conf > redis-7001.conf
1118 sed 's/7000/7002/g' redis-7000.conf > redis-7002.conf
1119 sed 's/7000/7003/g' redis-7000.conf > redis-7003.conf
1120 sed 's/7000/7004/g' redis-7000.conf > redis-7004.conf
1121 sed 's/7000/7005/g' redis-7000.conf > redis-7005.conf
3.启动6个redis实例 1133 redis-server redis-7000.conf 1134 redis-server redis-7001.conf 1136 redis-server redis-7002.conf 1137 redis-server redis-7003.conf 1138 redis-server redis-7004.conf 1139 redis-server redis-7005.conf
4.检查redis进程信息 [root@node1 /opt/redis-4.0.10/myjiqun 10:05:42]#ps -ef|grep redis root 9478 1 0 10:04 ? 00:00:00 redis-server :7000 [cluster] root 9483 1 0 10:04 ? 00:00:00 redis-server :7001 [cluster] root 9490 1 0 10:04 ? 00:00:00 redis-server :7002 [cluster] root 9495 1 0 10:04 ? 00:00:00 redis-server :7003 [cluster] root 9500 1 0 10:04 ? 00:00:00 redis-server :7004 [cluster] root 9505 1 0 10:04 ? 00:00:00 redis-server :7005 [cluster]
5.安装配置ruby环境,用于一键搭建redis集群 1.下载源码 wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz 2.解压缩ruby tar -xvf ruby-2.3.1.tar.gz 3.编译安装ruby ./configure --prefix=/opt/ruby/ make && make install
6.准备ruby的环境变量 cp ./bin/ruby /usr/local/bin/ cp ./bin/gem /usr/local/bin
7.下载ruby的软件包管理工具 wget http://rubygems.org/downloads/redis-3.3.0.gem gem install -l redis-3.3.0.gem #安装ruby操作redis的模块
8.查看ruby语言的包邮哪些 gem list -- check redis gem
9.配置环境变量redis-trib.rb,用于创建redis-cluster
#找到这个redis-trib.rb命令在哪里
[root@node1 /opt/redis-4.0.10/src 10:28:32]#find /opt -name redis-trib.rb
/opt/redis-4.0.10/src/redis-trib.rb
#配置环境变量,用于快速执行redis-trib.rb这个命令
cp /opt/redis-4.0.10/src/redis-trib.rb /usr/local/bin/
10.通过redis-trib.rb命令,一键创建redis-cluster集群功能
#其实就是分配槽位,分配主从关系
#通过这个命令,创建集群功能
#1 代表每个主只有一个从
#自动给后面6个节点,分配主从关系,7000、7001、7002是主节点,7003、7004、7005是从节点
redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
- 写入数据来使用redis集群了
redis查看身份的命令,可以来检查集群的节点身份信息 redis-cli -p 7003 info replication #查看主从身份信息 redis-cli -p 7004 info replication#查看主从身份信息 redis-cli -p 7005 info replication#查看主从身份信息
查看redis集群状态信息
redis-cli -p 7000 cluster info #查看节点集群状态
redis操作集群数据 通过-c参数才能指定集群功能 redis-cli -p 7000 -c
0则评论给“redis集群配置”