非关系型数据库-Redis
Redis安装
一、源码包安装
1.安装基础依赖
[root@localhost ~]# dnf -y install gcc gcc-c++ make tcl
2.安装redis软件包
$ tar -zxvf redis-6.2.14.tar.gz
$ cd redis-6.2.14
$ make #没有configure命令,已经生成了makefile文件,直接make即可
$ make test #测试安装环境,若多次运行失败也不影响安装
$ make install PREFIX=/usr/local/redis #安装,prefix需大写
3.复制配置文件
[root@localhost ~]# cd /usr/local/redis/
[root@localhost redis]# cp -a /root/redis-6.2.14/redis.conf .
4.启动服务,需指定配置文件
[root@localhost redis]# ./bin/redis-server redis.conf
5940:C 23 Sep 2025 18:26:08.052 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
5940:C 23 Sep 2025 18:26:08.052 # Redis version=6.2.14, bits=64, commit=00000000, modified=0, pid=5940, just started
5940:C 23 Sep 2025 18:26:08.052 # Configuration loaded
5940:M 23 Sep 2025 18:26:08.053 * Increased maximum number of open files to 10032 (it was originally set to 1024).
5940:M 23 Sep 2025 18:26:08.053 * monotonic clock: POSIX clock_gettime_._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 6.2.14 (00000000/0) 64 bit.-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379| `-._ `._ / _.-' | PID: 5940`-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | https://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 5940:M 23 Sep 2025 18:26:08.057 # Server initialized
5940:M 23 Sep 2025 18:26:08.057 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
5940:M 23 Sep 2025 18:26:08.057 * Ready to accept connections
- 默认是在前台运行的,需另开一个窗口去存储,这时我们可以修改配置文件redis.conf,将程序放在后台去执行
[root@localhost redis]# vi redis.confbind * -::1 #绑定所有ip地址0.0.0.0或*
daemonize yes #改为后台daemon运行
dir /usr/local/redis #指定数据存放目录./
protected-mode no #安全模式,在没有指明监听IP或没设置密码时能正常调用可关
requirepass 123 #设置密码[root@localhost redis]# ./bin/redis-server redis.conf
[root@localhost redis]# ss -anpt | grep :6379
LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* users:(("redis-server",pid=5948,fd=6))
LISTEN 0 511 [::1]:6379 [::]:* users:(("redis-server",pid=5948,fd=7))
5.客户端连接
[root@localhost redis]# ./bin/redis-cli -h localhost -p 6379 -a 123
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
或
[root@localhost redis]# ./bin/redis-cli -h localhost -p 6379
localhost:6379> auth 123
OK
二、RPM包安装
1.安装软件包
[root@localhost ~]# dnf -y install redis
2.启动服务,监听端口
[root@localhost ~]# systemctl start redis
[root@localhost ~]# ss -anpt | grep :6379
LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* users:(("redis-server",pid=11820,fd=6))
LISTEN 0 511 [::1]:6379 [::]:* users:(("redis-server",pid=11820,fd=7))
3.修改配置文件
[root@localhost ~]# vi /etc/redis/redis.confbind 0.0.0.0 -::1 #监听在所有ip上[root@localhost ~]# systemctl restart redis #重启服务
4.客户端连接
[root@localhost ~]# redis-cli
127.0.0.1:6379> set name lisi
OK
Redis简介
一、Redis相关配置
1.Redis参数
- 软件名:redis
- 服务名:redis
- 端口号:6379
- 配置文件:/etc/redis/redis.conf
- 日志文件:/var/log/redis/redis.log
- 数据文件:/var/lib/redis
2.相关命令
- redis-server:redis服务器
- redis-cli:redis客户端
- redis-check-aof、redis-check-rdb:redis的持久化监测
- redis-benchmark:redis自带的压测工具
- redis-sentinel:redis-server的软链接、哨兵模式的集群化
3.Redis通用命令
- keys * :获取所有的键
- type key:获取键对应的value的类型
- set key value:创建键值对
- get key:查看键对应的value的值
- del key:删除指定的key-value
- exists key:判断某个key值是否已经存在
可设置过期时间,过期了会自动删除,aof日志可看到删除命令
- 设:expire key值 秒数
- 查:ttl key值 #返回-2是key值不存在、-1是没有设置过期时间
4.Redis客户端
命令:redis-cli(rpm包)或/usr/local/redis/bin/redis-cli(源码包)
选项:
- -h:连接指定的redis服务器
- -p:指定redis服务器的端口
- -a:使用密码登录,推荐无密码连接后用auth输入密码
5.Redis持久化
概念:Redis持久化是将内存中的数据保存到磁盘,防止服务重启或故障时数据丢失的机制
持久化方式
- RDB快照(snapshotting),默认开启
- AOF模式(Append-Only-File)
RDB快照优缺点
优势:
- RDB是一个非常紧凑的文件,保存了在某个时间点上的数据
- Redis会创建单独子线程来处理保存工作、恢复速度快
劣势:
- 不能实时持久化,因为bgsave每次运行时会创建子进程、重量级操作
- 二进制文件保存,redis升级过程中RDB格式较多、不兼容
- 在一定时间间隔备份,意外宕机会丢失数据
AOF模式优缺点
优势:
- AOF提供了多种同步频率,默认是每秒同步一次
- AOF文件采用redis命令追加形式来构造
- AOF文件的格式可读性强、cat可看
劣势:
- 相同数据时,AOF文件比RDB文件体积更大、现提供了重写功能
- 默认是每秒同步一次,负载较高时性能较差
注:一般不建议单独使用一种持久化机制、而是两种一起用,且AOF优先级更高;若半路打开AOF模式,则之前的数据会丢失,因此要提前做好数据备份
开启操作步骤
RDB快照模式
vim /etc/redis/redis.conf
#表示3600 秒内如果至少有 1 个 key 的值变化,则保存
save 3600 1
#表示300 秒内如果至少有 100 个 key 的值变化,则保存
save 300 100
#表示60 秒内如果至少有 10000 个 key 的值变化,则保存
save 60 10000
#文件保存位置、文件名默认是dump.rdb
dir /usr/local/redis
AOF模式
vim /etc/redis/redis.conf
#将no改为yes、打开aof持久化方式
appendonly no
#有写操作,就马上写入磁盘。效率最慢,但是最安全
appendfsync always
#默认,每秒钟写入磁盘一次
appendfsync everysec
#不进行AOF备份,将数据交给操作系统处理。最快,最不安全
appendfsync no
#文件保存位置、重启后产生文件名默认是appendonly.aof
dir /usr/local/redis
二、Redis数据结构
1.数据结构特点
特点:Redis是一个Key-Value数据库
Key永远都是字符串
Value支持较多类型
- string:字符串
- hash:哈希(散列),key/value或map格式
- list:列表(如数组),支持重复元素,有序(可通过下标取值)
- set:存一组数,无序集合,不允许重复元素
- zset:存一组数,有序集合,不允许重复元素,元素有顺序
注:相较于其他键值对存储的数据库,Redis能支持更多的数据类型
2.字符串类型
特点:string在内存中按照一个name一个value来存储
操作:
#增: set key value
127.0.0.1:6379> set username jimmy#改: set key value
127.0.0.1:6379> set username jimi#查: get key
127.0.0.1:6379> get username#删: del key
127.0.0.1:6379> del username
3.哈希类型
特点:类似python中的字典,可以存储一组关联性较强的数据
操作:
#增或改:hset key field value
#增或改:hmset key field value field value
127.0.0.1:6379> hset user1 username lisi
127.0.0.1:6379> hset user1 password 123
或:
127.0.0.1:6379> hset user1 username lisi password 123#查:hgetall key——获取所有的field和value
127.0.0.1:6379> hget user1 username
127.0.0.1:6379> hgetall user1#删除指定field: hdel key field
127.0.0.1:6379> hdel user1 username#删除key: del key
127.0.0.1:6379> del username
4.列表类型
特点:value是有序的字符串、元素可以重复
操作:
#增——lpush key value: 将元素加入列表左表
#增——rpush key value:将元素加入列表右边
127.0.0.1:6379> lpush mylist a
127.0.0.1:6379> rpush mylist b#改——根据下标设置某个值:lset key index value
127.0.0.1:6379> lset mylist 2 aa#查——lrange key start end :范围获取
#其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1
表示列表的最后一个元素, -2 表示列表的倒数第二个元素;
127.0.0.1:6379> lrange mylist 0 -1
#查——根据指定下标取某个值:
127.0.0.1:6379> lindex mylist 0
#查——获取列表的长度:
127.0.0.1:6379> llen mylist#删——lpop删除列表最左侧元素、并返回
#删——rpop删除列表最左侧元素、并返回
127.0.0.1:6379> lpop mylist
127.0.0.1:6379> rpop mylist
#删——移除列表中的元素:lrem key count value
127.0.0.1:6379> lrem mylist 1 aa
5.集合类型
特点:Set集合是string类型的无序集合,加上hash算法、元素不重复
操作:
#增:sadd key value
127.0.0.1:6379> sadd myset a
127.0.0.1:6379> sadd myset a #重复了返回0#查:smembers key:获取set集合中所有元素
127.0.0.1:6379> smembers myset#删:srem key value:删除set集合中的某个元素
127.0.0.1:6379> srem myset a#改:先删——srem,再增——sadd
6.有序集合类型
特点:添加score权重的Set集合,不重复、有序
操作:
#增:zadd key score value
127.0.0.1:6379> zadd mysort 60 zhangsan
127.0.0.1:6379> zadd mysort 50 lisi#查:zrange key start end [withscores]
#查:zrange mysort 0 -1 withscores
127.0.0.1:6379> zrange mysort 0 -1
127.0.0.1:6379> zrange mysort 0 -1 withscores#删:zrem key value
127.0.0.1:6379> zrem mysort lisi#改:先删——zrem,再增——zadd
Redis功能搭建
一、Redis主从搭建
1.主从原理
- 从服务器向主服务器发出同步数据的请求
- 主服务器本地执行bgsave命令、将现有数据全部生成快照,并把快照发送给从服务器
- 从服务器载入快照、恢复数据,即拥有了主服务现有数据
- 当主服务有新数据时,会发送缓存命令给从服务器执行该命令、获取新数据
2.主从特点
优点:
- 提高整体的高可用性
- 能实现多机备份、读写分离、负载均衡
缺点:
- 主从复制机制使得slave成为与master完全一致的副本
- 发生故障时,需要手动切换,人工干预效率低、易出错,且故障感知滞后,不具备生产实用性
改进:
- Redis官方提供一种能自动故障转移的方案——哨兵(Redis Sentinel)
3.主服务器配置(源码包)
69.69
vim /usr/local/redis/redis.conf#设置监听IP和监听port
bind 0.0.0.0
port 6379
#设置保护模式禁用
protected-mode no
#设置开启AOF模式
appendonly yes
#设置密码,选做
requirepass 123
注:这里我直接用了之前搭建的源码包中的配置
4.从服务器配置(RPM包)
69.70
vim /etc/redis/redis.conf#设置监听IP和监听port
bind 0.0.0.0
port 6379
#设置保护模式禁用
protected-mode no
#设置开启AOF模式
appendonly yes#在从上配置主从关系
replicaof 192.168.69.69 6379 #主服务器IP 主服务器port
masterauth 123 #主服务器连接密码
5.验证主从结构
- 连接上主服务器、进行存数据操作
[root@localhost redis]# ./bin/redis-cli -h 192.168.69.69 -p 6379 -a 123
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.69.69:6379> set address beijin
OK
192.168.69.69:6379> get address
"beijin"
- 连接上从服务器、进行取数据操作
[root@localhost ~]# redis-cli
127.0.0.1:6379> get address
"beijin"
二、Redis集群搭建
目标:创建3主3从的最小集群,设置创建集群时自动分配主从
优点:
- 解决单机Redis容量有限的问题,将数据按一定的规则分配到多台机器
- 实现了redis数据的分布式存储
- 客户端与redis节点之间直连,没有中间损耗
- 客户端连接任何一个节点,都能够获得集群的信息
- 所有节点互联,采用ping-pong机制,半数节点检测失败,则该节点fail
1.创建6个redis节点
(1)准备三台虚拟机,做好最初的安装(69.69、69.70、69.71)
#安装软件包
$ dnf -y install redis
#启动服务,默认就是后台启动
$ systemctl restart redis
#监听端口,默认只监听在本地回环上
$ ss -antp | grep :6379
(2)创建存放2个redis实例数据的目录,即一台虚拟机上创建2个redis节点
#三台虚拟机
#源码包
[root@localhost ~]# mkdir -p /data/{6379,6380}
[root@localhost ~]# cp -a /root/redis-6.2.14/redis.conf /data/6379/
[root@localhost ~]# cp -a /root/redis-6.2.14/redis.conf /data/6380/#rpm包
[root@localhost ~]# mkdir -p /data/{6379,6380}
[root@localhost ~]# cp -a /etc/redis/redis.conf /data/6379/
[root@localhost ~]# cp -a /etc/redis/redis.conf /data/6380/
(3)修改配置文件,添加集群信息,都不需要配置主从关系
vim /data/6379/redis.confbind *
port 6379#创建redis集群
daemonize yes
pidfile /data/6379/redis.pid
logfile /data/6379/redis.log
dir /data/6379
appendonly yes
protected-mode nocluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
vi /data/6380/redis.confbind *
port 6380
protected-mode no
daemonize yes
pidfile /data/6380/redis.pid
logfile /data/6380/redis.log
appendonly yes
dir /data/6380#集群相关信息
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
(4)启动redis进程,查看端口号
[root@localhost ~]# /usr/local/redis/bin/redis-server /data/6379/redis.conf
[root@localhost ~]# /usr/local/redis/bin/redis-server /data/6380/redis.conf
[root@localhost ~]# ss -anpt | grep redis
LISTEN 0 511 0.0.0.0:16380 0.0.0.0:* users:(("redis-server",pid=6127,fd=10))
LISTEN 0 511 0.0.0.0:6379 0.0.0.0:* users:(("redis-server",pid=5983,fd=6))
LISTEN 0 511 0.0.0.0:6380 0.0.0.0:* users:(("redis-server",pid=6127,fd=6))
ESTAB 0 0 192.168.69.69:6379 192.168.69.70:41655 users:(("redis-server",pid=5983,fd=8))
LISTEN 0 511 [::1]:6379 [::]:* users:(("redis-server",pid=5983,fd=7))
LISTEN 0 511 [::1]:6380 [::]:* users:(("redis-server",pid=6127,fd=7))
LISTEN 0 511 [::1]:16380 [::]:* users:(("redis-server",pid=6127,fd=11))
(5)进行连接测试,但一定不要存数据,因为所有的容量都是由机器统一分配的
#源码包测试
[root@localhost ~]# /usr/local/redis/bin/redis-cli -p 6379
127.0.0.1:6379> exit
[root@localhost ~]# /usr/local/redis/bin/redis-cli -p 6380
127.0.0.1:6380> exit
或
#rpm包测试
[root@localhost ~]# redis-cli -p 6379
127.0.0.1:6379> exit
[root@localhost ~]# redis-cli -p 6380
127.0.0.1:6380> exit
2.创建集群
[root@localhost ~]# redis-cli --cluster create --cluster-replicas 1 192.168.69.69:6379 192.168.69.69:6380 192.168.69.70:6379 192.168.69.70:6380 192.168.69.71:6379 192.168.69.71:6380
3.连接测试
[root@localhost ~]# redis-cli -c #通过集群连接127.0.0.1:6379> cluster node #查看集群里的节点信息
(error) ERR Unknown subcommand or wrong number of arguments for 'node'. Try CLUSTER HELP.
127.0.0.1:6379> cluster nodes
b77bacb2d69a02bd50c9d006f59ba1d913efb5c3 192.168.69.71:6380@16380 slave cbf7c955601dcecf9fd0c3e5e7e1c4ab6da4dbac 0 1758632079443 3 connected
83a119c1a678939b669a35387a4c4928d17ff50c 192.168.69.71:6379@16379 master - 0 1758632079000 5 connected 10923-16383
39cd17301284a5413dff7ae8a62b501e721ca541 192.168.69.69:6379@16379 master - 0 1758632080454 1 connected 0-5460
fb73a1839dd3a2923cbf180a6ffd2adc57a6c431 192.168.69.70:6380@16380 slave 39cd17301284a5413dff7ae8a62b501e721ca541 0 1758632080000 1 connected
cbf7c955601dcecf9fd0c3e5e7e1c4ab6da4dbac 192.168.69.70:6379@16379 myself,master - 0 1758632078000 3 connected 5461-10922
271bbb1b374f5b50129acc6a7c371bce3619fdbb 192.168.69.69:6380@16380 slave 83a119c1a678939b669a35387a4c4928d17ff50c 0 1758632080000 5 connected#通过连接任何一个节点,查看集群中所有数据
[root@localhost ~]# redis-cli -c --cluster call 192.168.69.69:6379 keys \*
4.集群扩容(分片)
- 集群主节点3个以上、不建议超过1000个
- 集群中内置了16384个哈希槽位(slot),把它均等分给各节点
- 当要存储key-value时,先对key使用crc16算法得出一个结果、再对16384求余数,得到一个编号在0-16383之间的哈希值,进而把key存储在该槽位(分片逻辑)
- 一个节点可以分配主从,主节点挂了从节点替补成主节点
- 一个节点所有的服务器都挂了,该段槽位无法正常使用,则集群无法提供服务
(1)查看slot和节点的对应关系
127.0.0.1:6379> cluster slots
1) 1) (integer) 02) (integer) 5460 0-5460——槽位区间3) 1) "192.168.69.69" #主2) (integer) 63793) "39cd17301284a5413dff7ae8a62b501e721ca541"4) 1) "192.168.69.70" #从2) (integer) 63803) "fb73a1839dd3a2923cbf180a6ffd2adc57a6c431"
2) 1) (integer) 54612) (integer) 109223) 1) "192.168.69.70"2) (integer) 63793) "cbf7c955601dcecf9fd0c3e5e7e1c4ab6da4dbac"4) 1) "192.168.69.71"2) (integer) 63803) "b77bacb2d69a02bd50c9d006f59ba1d913efb5c3"
3) 1) (integer) 109232) (integer) 163833) 1) "192.168.69.71"2) (integer) 63793) "83a119c1a678939b669a35387a4c4928d17ff50c"4) 1) "192.168.69.69"2) (integer) 63803) "271bbb1b374f5b50129acc6a7c371bce3619fdbb"
(2)随机插入一条数据,查看落在了哪个主从节点
#随机插入一条数据
127.0.0.1:6379> set name lisi
OK
127.0.0.1:6379> exit
#通过连接任何一个节点,查看集群中所有数据,判断插入数据在哪个节点
[root@localhost ~]# redis-cli -c --cluster call 192.168.69.69:6379 keys \*
>>> Calling keys *
192.168.69.69:6379:
192.168.69.71:6380: name
192.168.69.70:6380:
192.168.69.69:6380:
192.168.69.71:6379:
192.168.69.70:6379: name
5.服务器故障
(1)若挂了一个从节点
[root@localhost ~]# ps aux | grep redis
root 10688 0.2 0.6 62936 12748 ? Ssl 19:58 0:11 redis-server *:6379 [cluster]
root 10694 0.2 0.6 152032 13132 ? Ssl 19:58 0:12 redis-server *:6380 [cluster]
root 10807 0.0 0.1 6408 2176 pts/2 S+ 21:10 0:00 grep --color=auto redis
[root@localhost ~]# kill -9 10694
(2)查看集群的node节点
127.0.0.1:6379> cluster nodes
b77bacb2d69a02bd50c9d006f59ba1d913efb5c3 192.168.69.71:6380@16380 slave,fail cbf7c955601dcecf9fd0c3e5e7e1c4ab6da4dbac 1758633076021 1758633073981 3 disconnected
83a119c1a678939b669a35387a4c4928d17ff50c 192.168.69.71:6379@16379 master - 0 1758633109000 5 connected 10923-16383
39cd17301284a5413dff7ae8a62b501e721ca541 192.168.69.69:6379@16379 master - 0 1758633109000 1 connected 0-5460
fb73a1839dd3a2923cbf180a6ffd2adc57a6c431 192.168.69.70:6380@16380 slave 39cd17301284a5413dff7ae8a62b501e721ca541 0 1758633108716 1 connected
cbf7c955601dcecf9fd0c3e5e7e1c4ab6da4dbac 192.168.69.70:6379@16379 myself,master - 0 1758633108000 3 connected 5461-10922
271bbb1b374f5b50129acc6a7c371bce3619fdbb 192.168.69.69:6380@16380 slave 83a119c1a678939b669a35387a4c4928d17ff50c 0 1758633109533 5 connected
注:可以看到这个从节点挂掉,但集群依然可以正常工作
(3)若挂掉一个主节点
[root@localhost ~]# ps aux | grep redis
root 10688 0.2 0.6 62936 12748 ? Ssl 19:58 0:13 redis-server *:6379 [cluster]
root 10824 0.4 0.6 152032 13116 ? Ssl 21:13 0:00 redis-server *:6380 [cluster]
root 10835 0.0 0.1 6408 2176 pts/2 S+ 21:13 0:00 grep --color=auto redis
[root@localhost ~]# kill -9 10688
(4)查看集群的node节点
127.0.0.1:6379> cluster nodes
b77bacb2d69a02bd50c9d006f59ba1d913efb5c3 192.168.69.71:6380@16380 slave cbf7c955601dcecf9fd0c3e5e7e1c4ab6da4dbac 0 1758633253375 3 connected
83a119c1a678939b669a35387a4c4928d17ff50c 192.168.69.71:6379@16379 master - 1758633250317 1758633248000 5 disconnected 10923-16383
39cd17301284a5413dff7ae8a62b501e721ca541 192.168.69.69:6379@16379 master - 0 1758633253583 1 connected 0-5460
fb73a1839dd3a2923cbf180a6ffd2adc57a6c431 192.168.69.70:6380@16380 slave 39cd17301284a5413dff7ae8a62b501e721ca541 0 1758633253000 1 connected
cbf7c955601dcecf9fd0c3e5e7e1c4ab6da4dbac 192.168.69.70:6379@16379 myself,master - 0 1758633252000 3 connected 5461-10922
271bbb1b374f5b50129acc6a7c371bce3619fdbb 192.168.69.69:6380@16380 slave 83a119c1a678939b669a35387a4c4928d17ff50c 0 1758633253000 5 connected
注:可以看到与之对应的从节点变为了主节点,即使原主被修复,依旧会变成新主的从
(5)若挂点一对主从,则集群就此down掉
#69.71——从
[root@localhost ~]# ps aux | grep redis
root 10824 0.4 0.6 152032 12988 ? Ssl 21:13 0:01 redis-server *:6380 [cluster]
root 10837 0.4 0.6 152032 12752 ? Ssl 21:16 0:00 redis-server *:6379 [cluster]
root 10848 0.0 0.1 6408 2176 pts/2 S+ 21:19 0:00 grep --color=auto redis
[root@localhost ~]# kill -9 10837#69.69——主
[root@localhost ~]# ps aux | grep redis
root 6320 0.4 0.5 54036 11664 ? Ssl 20:49 0:07 /usr/local/redis/bin/redis-server *:6379 [cluster]
root 6327 0.4 0.6 134936 11932 ? Ssl 20:49 0:08 /usr/local/redis/bin/redis-server *:6380 [cluster]
root 6397 0.0 0.1 6636 2432 pts/2 S+ 21:20 0:00 grep --color=auto redis
[root@localhost ~]# kill -9 6327
127.0.0.1:6379> set name zhangsan
(error) CLUSTERDOWN The cluster is down