redis使用的场景
需要满足120万司机用户的缓存,以下是测试环境,生产环境建议单独机器部署.
- 满足车辆当前位置和车辆服务key存储
- 司机手机号码对应的存储以及存储司机key的信息
- 保证redis能更好的提供服务,避免单点故障
- 对应会话消息的缓存保存。以及临时会话缓存的key。基于im的构建。
综合所得:需要的key会上亿。需要稳定的提供服务。
需求对应的部署方式
部署方式 | 需求满足情况 |
---|---|
主从复制 | 满足不了故障转移 |
哨兵机制 | 满足不了key的存储 |
Cluster集群 | 满足业务场景:每秒钟所需要获取的数据远远超过单台redis服务所能承受的压力 |
redis集群测试部署
机器分配情况
准备两台机器10.0.0.49,10.0.0.56
部署方式 | 需求满足情况 | 端口 | 节点情况 |
---|---|---|---|
10.0.0.49 | redis-cluster | 6701 | master |
10.0.0.49 | redis-cluster | 6702 | master |
10.0.0.49 | redis-cluster | 6703 | master |
10.0.0.56 | redis-cluster | 6701 | slave—>10.0.0.49:6701的master |
10.0.0.56 | redis-cluster | 6702 | slave—>10.0.0.49:6702的master |
10.0.0.56 | redis-cluster | 6703 | slave—>10.0.0.49:6703的master |
编译安装文件
-
下载
下载对应的部署文件 redis-6.2.12.tar.gztar -zxvf redis-6.2.12.tar.gz #解压
也可以直接下载我已经打包好的文件https://download.csdn.net/download/u013642886/87867727
-
编译
注意:执行make出现错误#执行make出现错误2 cd src && make all make[1]: Entering directory `/home/redis/redis-6.2.12/src' CC adlist.o /bin/sh: cc: command not found make[1]: *** [adlist.o] Error 127 make[1]: Leaving directory `/home/redis/redis-6.2.12/src' make: *** [all] Error 2 #执行出现错误2 zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory #include <jemalloc/jemalloc.h> make MALLOC=libc
由于缺少gcc导致的,执行下面的命令再执行
yum -y install gcc gcc-c++ make clean #执行出现错误1 make #执行出现错误2 make MALLOC=libc
-
创建Reids Cluster集群目录
mkdir redis-6.2.12-cluster mkdir redis-6.2.8-cluster/{ bin,conf,data,var,logs} -p # 准备redis可执行命令 cd redis-6.2.12 cp src/redis-benchmark /home/redis/redis-6.2.12-cluster/bin cp src/redis-check-aof /home/redis/redis-6.2.12-cluster/bin cp src/redis-check-rdb /home/redis/redis-6.2.12-cluster/bin cp src/redis-cli /home/redis/redis-6.2.12-cluster/bin cp src/redis-sentinel /home/redis/redis-6.2.12-cluster/bin cp src/redis-server /home/redis/redis-6.2.12-cluster/bin cp src/redis-trib.rb /home/redis/redis-6.2.12-cluster/bin
-
检查
配置Redis一主一从
-
将配置文件复制到对应的conf目录
#创建redis用户 useradd redis passwd redis #redis@123 chown -R redis:redis /home/redis cp redis.conf /home/redis/redis-6.2.12-cluster/conf/ cd /home/redis/redis-6.2.12-cluster/conf/
-
redis节点配置
redis6.2.12版本配置文件所有内容如下,主要配置带注释的行。(此配置文件参考,不用添加配置)bind 0.0.0.0 #如果有跨服务器的情况建议使用固定ip protected-mode no #关闭保护模式 port 6701 #端口号 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize yes #后台运行 pidfile /home/redis/redis-6.2.12-cluster/var/redis.pid #pid存放 loglevel notice logfile /home/redis/redis-6.2.12-cluster/logs/redis.log #日志存放路径 databases 16 always-show-logo yes #是否显示总日志 set-proc-title yes proc-title-template "{title} {listen-addr} {server-mode}" stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum