安装redis

具体安装步骤查看 安装Redis 文章

配置master节点信息

修改redis.conf(6379.conf)相关配置信息

  1. daemonize yes # 让redis以daemon进程运行
  2. pidfile /var/run/redis_6379.pid # pid文件
  3. dir /var/lib/redis/6379 # 存储持久化文件的目录
  4. bind <自己的ip地址> # bind为自己的ip地址,不能为127.0.0.1
  5. requirepass 123456 # 设置auth认证口令

配置修改后,重启redis生效配置文件

  1. systemctl restart redis_6379.service
  2. redis-server /etc/redis/6379.conf &

redis-cli连接

  1. redis-cli -h 192.168.2.10 -a 123456
  2. 192.168.2.10:6379> info replication
  3. role:master
  4. connected_slaves:1
  5. slave0:ip=192.168.2.11,port=6379,state=online,offset=1714,lag=1
  6. master_replid:917690b5541495d6cb7eabb808224e6c24681675
  7. master_replid2:0000000000000000000000000000000000000000
  8. master_repl_offset:1714
  9. second_repl_offset:-1
  10. repl_backlog_active:1
  11. repl_backlog_size:1048576
  12. repl_backlog_first_byte_offset:1
  13. repl_backlog_histlen:1714

配置slave节点信息

修改redis.conf(6379.conf)相关配置信息

  1. daemonize yes # 让redis以daemon进程运行
  2. pidfile /var/run/redis_6379.pid # pid文件
  3. dir /var/lib/redis/6379 # 存储持久化文件的目录
  4. bind <自己的ip地址> # bind为自己的ip地址,不能为127.0.0.1
  5. replicaof <masterip> <masterport> # 配置master节点信息
  6. masterauth 123456 # 配置master的auth认证口令
  7. replica-read-only yes # 默认slave节点为只读

配置修改后,重启redis生效配置文件

  1. systemctl restart redis_6379.service
  2. redis-server /etc/redis/6379.conf &

验证是否可以监听到master节点端口

  1. telent 192.168.2.10 6379
  2. # 可以通过yum install telnet_server 和 yum install telent 安装telnet

redis-cli连接

  1. redis-cli -h 192.168.2.11
  2. 192.168.2.11:6379> info replication
  3. # Replication
  4. role:slave
  5. master_host:192.168.2.10
  6. master_port:6379
  7. master_link_status:up
  8. master_last_io_seconds_ago:7
  9. master_sync_in_progress:0
  10. slave_repl_offset:210
  11. slave_priority:100
  12. slave_read_only:1
  13. connected_slaves:0
  14. master_replid:917690b5541495d6cb7eabb808224e6c24681675
  15. master_replid2:0000000000000000000000000000000000000000
  16. master_repl_offset:210
  17. second_repl_offset:-1
  18. repl_backlog_active:1
  19. repl_backlog_size:1048576
  20. repl_backlog_first_byte_offset:1
  21. repl_backlog_histlen:210

最后的验证

在master节点上写入新的数据,set key value,
然后在slave节点读取相应数据,get key
如果读取得到,说明主从架构部署成功。

QPS压测

  1. redis-benchmark -h <ip地址>
  2. -c <clients> 客户端的并发连接数 (默认 50)
  3. -n <requests> 总的请求数 (默认 100000)
  4. -d <size> 设置或获取的value数据的大小(默认2字节)

一般,一台普通的redis服务器(1G内存),可以支撑上万的QPS。
影响QPS的两大杀手:复杂的操作,比如lrange;还有就是value值很大
可以通过水平扩容redis读节点,提升读吞吐量。