mkdir /app/redis
cd /app/redis
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar -zxvf redis-5.0.7.tar.gz
cd /app/redis/redis-5.0.7
make MALLOC=libc
sudo make install
cp redis.conf src/
cd src
主要修改内容如下:
port 6379
cluster-enabled yes
cluster-config-file nodes-6379.conf //启动的时候会由redis生成和管理
cluster-node-timeout 15000
appendonly yes
daemonize yes //后台运行
bind 0.0.0.0
每个节点运行
/app/redis/redis-5.0.7/src/redis-server /app/redis/redis-5.0.7/src/redis.conf
由于redis集群最少需要6个节点,需要再建两个配置文件
cp redis.conf redis_6380.conf
cp redis.conf redis_6381.conf
原文档中包含6379的地方都修改为对应的ip
例如:
port 6380
pidfile /var/run/redis_6380.pid
cluster-config-file nodes-6380.conf
每个节点运行
/app/redis/redis-5.0.7/src/redis-server /app/redis/redis-5.0.7/src/redis.conf
/app/redis/redis-5.0.7/src/redis-server /app/redis/redis-5.0.7/src/redis_6380.conf
/app/redis/redis-5.0.7/src/redis-server /app/redis/redis-5.0.7/src/redis_6381.conf
测试/生产环境(只需要安装redis的一台上执行即可):
/app/redis/redis-5.0.7/src/redis-cli --cluster create 172.20.108.166:6379 172.20.108.166:6380 172.20.108.166:6381 172.20.108.188:6379 172.20.108.188:6380 172.20.108.188:6381 --cluster-replicas 1
追加节点
src/redis-cli --cluster add-node 10.99.32.32:6379 10.99.32.3:6379
查看节点
src/redis-cli -h 10.99.32.9 -c cluster nodes
删除节点
src/redis-cli --cluster del-node 10.99.32.9:6379 08859612fdf824fd07c538c65073a86ca7d522cb
需要先获取节点node-id
cluster info
集群添加密码参考地址:https://blog.csdn.net/u012572955/article/details/53996107
如果集群要设置密码,集群启动后要在各个节点下设置:
config set masterauth xxx
config set requirepass xxx
然后在各个节点下重置配置:
config rewrite
redis 集群 创建报错 [ERR] Node is not empty. Either the node already knows other nodes:
参考地址:https://blog.csdn.net/xiaoliuliu2050/article/details/72898828
https://blog.csdn.net/u012572955/article/details/53996107
解决方法:
redis集群重启需要删除各个节点下的文件,删除命令如下:
rm -rf appendonly.aof
rm -rf dump.rdb
rm -rf nodes.conf
rm -rf nodes-6379.conf
rm -rf nodes-6380.conf
rm -rf nodes-6381.conf
rm -rf redis.log
1)、将需要新增的节点下aof、rdb等本地备份文件删除;
2)、同时将新Node的集群配置文件删除,即:删除你redis.conf里面cluster-config-file所在的文件;
3)、再次添加新节点如果还是报错,则每个节点登录新Node,./redis-cli–h x –p对数据库进行清除:
例如:./redis-cli -c -p 7001
172.168.63.201:7001> flushdb #清空当前数据库
Redis (error) NOAUTH Authentication required.解决方法:
出现认证问题,应该是设置了认证密码,输入密码既可以啦
注意密码是字符串形式!
127.0.0.1:6379> auth "yourpassword"
例如密码是‘root’,当出现认证问题时候,输入“auth ‘root’”即可
127.0.0.1:6379> set name "hello"
(error) NOAUTH Authentication required.
127.0.0.1:6379> (error) NOAUTH Authentication required.
(error) ERR unknown command '(error)'
127.0.0.1:6379> auth "root"
可以进入
127.0.0.1:6379> auth "root"
OK
redis 如何查看所有的key:
列出所有的key
redis> keys *
列出匹配的key
redis>keys apple*
1) apple1
2) apple2