高性能开发(1) Redis缓存主从配置详解
一、前言
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
二、下载Redis
最新版本的redis版本为3.2.8,支持集群功能。我这下载的是window版本(win-3.0.5),实际场景都是安装在linux系统下的。
windows版本官方下载地址:https://github.com/MSOpenTech/redis/releases
三、安装Redis(用windows版本为例)
下载Redis-x64-3.0.504.msi之后双击打开安装配置页面,一般来说默认即可,但是你要知道配置项的意思,根据具体情况配置。最后点击install即可安装。
四、Redis读写分离配置
这里方便设置主从配置,我们从安装目录masterRedis-win-3.0.5中复制一份出来,命名为:slaveRedis-win-3.0.5
主配置:端口修改为6380
从配置:端口修改为6381
4.1 主配置修改
1.打开如下目录中的redis.windows.conf配置
2.搜索关键字”port”,把默认值6379更新为6380
3.设置redis的认证密码,假设修改密码为:123456-->搜索requirepass关键字,只需添加一行即可;
4.2 从配置修改
1.端口修改,跟上面类似把6380换成6381即可;
2.修改从服务对应的主服务地址(修改时可以直接搜索slaveof关键字)
配上刚刚设置的主服务地址和端口号:格式为: slaveof 主配置IP地址 端口号
3.设置redis的认证密码,修改过程跟上面类似,假设密码设置为:12345678
4.如果主配置中设置了redis的认证密码,必须设置下面的步骤,否则可以省略这一步.
master设置密码的情况下同步数据,其实很简单,我们只要让slave能连上master就可以了,我们在slave的配置文件中加一句话即可: masterauth 123456 不然会报错。搜索”masterauth” 关键字,格式为:masterauth+主配置的redis认证密码
五、启动Redis服务
按照上面的配置修改完成后,分别启动主服务和从服务
启动主服务脚本:
- D:\Program Files\redis\masterRedis-win-3.0.5>"D:\Program Files\redis\masterRedis
- -win-3.0.5\redis-server.exe" redis.windows.conf
启动从服务脚本:
- D:\Program Files\redis\slaveRedis-win-3.0.5>"D:\Program Files\redis\slaveRedis-w
- in-3.0.5\redis-server.exe" redis.windows.conf
从服务启动以后,主服务会发送一条同步的sync命令,同步从服务器的缓存数据。
5.1 如果启动报错
...Creating Server TCP listening socket *:6379: bind:Unknownerror
解决方案:
按顺序输入如下命令就可以连接成功
1. redis-cli.exe
2. shutdown
3. exit
4. redis-server.exe redis.windows.conf
注:最主要的是启动redis-server.exe时,后面要带上redis.windows.conf配置
六、测试使用
1.直接双击redis-cli.exe 即可打开终端,试了下ok。
2.通过RedisDesktopManager管理工具查看,能连接成功,即表示启动成功了
3.RedisDesktopManager管理工具配置
或者 把127.0.0.1 换成本地IP连接地址