常用命令
启动某节点
redis-server redis_7001/conf/redis_7001.conf
查看redis
ss -tnlp | grep 700 都带700的
ss -tnlp | grep redis 所有redis
配置环境变量的时候可能权限不足,需要在redis-server目录下chmod +x redis-server redis-cli 建议把那个目录下所有文件都加x,正常编程可执行文件时会变绿
连接redis
redis-cli -c -p 7001 -n 172.17.20.50 (不加-c可能无法通过小黑框set数据)
存进去的数据也不是三个机器都有,他们有默认的存储方式
注意,7001和7002的配置文件不一样,区别在于7001和7002相关配置需要调整
kill -9 pid 这个pid对应查看时候的pid能杀死7001和7002节点


- xi集群准备

2. 安装依赖
yum -y install gcc automake autoconf libtool make
3. redis安装
wget https://download.redis.io/releases/redis-5.0.4.tar.gz
tar zxvf redis-5.0.4.tar.gz
mkdir /data/redis# 准备redis的⼯作⽬录
cd redis-5.0.4/
make PREFIX=/data/redis install
cp src/redis /data/redis/bin
cd /data/redis/bin && rm -rf .c .h .o # 删除⽆⽤的⽂件
4. redis节点配置,172.17.20.50上操作
4.1 ⽣成配置⽂件
cat > redis_7001.conf << EOF
bind 0.0.0.0
protected-mode yes
port 7001
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_7001.pid
loglevel notice
logfile “/data/redis/redis_7001/logs/redis-7001.logs”
databases 16
always-show-logo yes
# rdb 持久化相关配置
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump_7001.rdb
dir /data/redis/redis_7001/data
# 主从复制相关配置
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
# aof持久化相关配置,no表示未开启
appendonly no
appendfilename “appendonly.aof”
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events “”
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
# 集群相关配置
cluster-enabled yes
cluster-config-file nodes_7001.conf
cluster-node-timeout 25000
# 集群密码认证(集群中所有节点密码必须⼀致,可不开启)
#masterauth “SDFAgPjgGLK!8”
#requirepass “SDFAgPjgGLK!8”
EOF
cp redis_7001.conf redis_7002.conf
sed -i ‘s/7001/7002/g’ redis_7002.conf
4.2 集群配置
cd /data/redis
mkdir -pv /data/redis/redis_7001/{logs,conf,data}
mkdir -pv /data/redis/redis_7002/{logs,conf,data}
# 将上边⽣成的两个配置⽂件分别放在所有机器对应⽬录下,redis_7001/conf/redis_7001.conf,redis_7002/conf/redis_7002.conf
# 将redis⽬录发送到其余两个节点
for i in 51 52; do scp -r /data/redis/redis_7001 172.17.20.${i}:/data/redis; done
for i in 51 52; do scp -r /data/redis/redis_7002 172.17.20.${i}:/data/redis; done
4.3 设置命令环境变量,所有节点上操作
echo ‘export PATH=$PATH:/data/redis/bin/‘ >> /etc/profile
source /etc/profile
redis-server -v# 查看redis版本
4.4 启动7001实例
redis-server redis_7001/conf/redis_7001.conf
# 确认端⼝是否正常启动
ss -tnlp | grep 7001
LISTEN 0 128 :7001 : users:((“redis-server”,pid=21310,fd=6))
LISTEN 0 128 :17001 : users:((“redis-server”,pid=21310,fd=8))
# 查看服务启动⽇志,发现有warning信息
cat redis_7001/logs/redis-7001.logs
4.5 解决启动warning事项,三台机器都需要操作
1)解决最⼤打开⽂件数
# 查看当前值,⼀般系统默认是1024
$ ulimit -n
1024
$ echo ‘ soft nofile 65535’ >> /etc/security/limits.conf
$ echo ‘ hard nofile 65535’ >> /etc/security/limits.conf
# 修改后,重新登录即可⽣效
2) 解决TCP积压值过⼩问题
$ echo “net.core.somaxconn = 65535” > /etc/sysctl.d/redis.conf
$ sysctl -p /etc/sysctl.d/redis.conf #刷新使其⽣效
net.core.somaxconn = 1024
3) 允许分配所有的物理内存
$ echo “vm.overcommit_memory = 1” >> /etc/sysctl.d/redis.conf
$ sysctl -p /etc/sysctl.d/redis.conf #刷新使其⽣效
net.core.somaxconn = 1024
vm.overcommit_memory = 1
4) 解决内存透明⼤⻚警告
$ echo never > /sys/kernel/mm/transparent_hugepage/enabled
#上述指令只是当前⽣效,重启后就会失效,接下来改为永久⽣效
$ echo ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ >> /etc/rc.local
$ chmod +x /etc/rc.d/rc.local
4.6 重启redis服务
pkill -9 redis-server
$ redis-server redis_7001/conf/redis_7001.conf
$ redis-server redis_7002/conf/redis_7002.conf
$ ss -tnlp | grep redis
LISTEN 0 128 :7001 : users:((“redis-server”,pid=2864,fd=6))
LISTEN 0 128 :7002 : users:((“redis-server”,pid=2889,fd=6))
LISTEN 0 128 :17001 : users:((“redis-server”,pid=2864,fd=8))
LISTEN 0 128 :17002 : users:((“redis-server”,pid=2889,fd=8))
5. 创建集群
# 随意⼀个节点,创建集群,同⼀个主从不要在同⼀个节点
redis-cli —cluster create 172.17.20.50:7001 —cluster-replicas 1
节点之间用空格连接
验证集群
$ redis-cli -p 7001 -h 172.17.20.50
