一.redis 的安装
1.先将安装包放到linux的一个文件夹下面linux
2.解压压缩包如图所示redis
3.解压后进入解压文件服务器
4.安装: make 出现it.s a good idea to run 'make test'则表示安装成功并发
以下图:ide
5.修改redis.config文件高并发
a)由于咱们要在外网使用 须要将绑定的本机给注释掉 而且在redis3.2以后新增了protected-mode配置,默认是yes, 咱们这里还要将他改为no工具
详情参考这里http://blog.csdn.net/sukexiaozi/article/details/52022449性能
b)保护进程 后台启动redis 将daemonize设置为yes测试
c)在这里我修改一下端口号 以便对后面的哨兵和主从同步进行配置 这里我把端口号改为6360ui
而后启动redis
./src/redis-server ./redis.conf
而后查看进程
入上图 redis 6360端口起启动了
而后本地测试:./src/redis-cli -h localhost -p 6360
-h 是链接的主机ip,host的缩写,-p 是端口 port的缩写 ,-a 后面是密码(requirepass 后面配置的)auth的缩写 (这里咱们没有设置密码因此不用输入)
以下图就是成功了 而且存值 123 为haha 123 位键 haha为值
而后外网测试:能够在另一台机器上安装上redis经过redis-cli来链接 也能够经过工具链接测试好比RedisDesktopManager
由于我本地安装了redis因此直接在本地链接服务器上的redis来测试结果以下:
这样redis就安装完毕。
二.主从同步
当数据量变得庞大的时候,读写分离仍是颇有必要的。同时避免一个redis服务宕机,致使应用宕机的状况,咱们启用sentinel(哨兵)服务,实现主从切换的功能。
准备三个redis服务,依次命名文件夹子6360,6361,6362,咱们这里是一主两从 主为master从为slave master的使用6360端口。
并在同级目录下建立bin目录留做备用
结构以下:
接下来配置redis.config
master为6360和刚才的配置同样
slave1修改配置
port 6361
slaveof 127.0.0.1 6360
masterauth 123456 (这里是master的密码 若是没有设置则不写)
requirepass 123456(这里是slave1的密码 若是没有设置则不写)
slave2修改配置
port 6362
slaveof 127.0.0.1 6360
masterauth 123456 (这里是master的密码 若是没有设置则不写)
requirepass 123456(这里是slave2的密码 若是没有设置则不写)
将各个配置文件放到对应的文件夹下面 并将下面这些文件复制到刚才建立的bin目录下
redis-benchmark redis性能测试工具 (src目录下)
redis-check-aof aof文件修复程序(src目录下)
redis-check-rdb RDB文件检查工具(src目录下)
redis-cli redis客户端(src目录下)
redis-sentinel redis集群(这个是2.8新增的功能,具体的再进一步摸索)
redis-server redis服务器 (src目录下)
启动三个redis
./bin/redis-server ./6360/redis6360.conf
./bin/redis-server ./6361/redis6361.conf
./bin/redis-server ./6362/redis6362.conf
测试方法就是连上 master的存储一个值而后再链接上salve的获取这个值能获取则表示成功
从机能同步主机的值,主从复制,读写分离就实现了
可是万一主机挂了怎么办,这是个麻烦事情,因此redis提供了一个sentinel(哨兵),以此来实现主从切换的功能,相似与zookeeper.
三.哨兵模式
咱们配置三个sentinel进程:
port 26360
sentinel monitor mymaster 127.0.0.1 6360 2 (这里是表明主机是 本地ip的6360端口 这个后面的数字2,是指当有两个及以上的sentinel服务检测到master宕机,才会去执行主从切换的功能)
port 26361
sentinel monitor mymaster 127.0.0.1 6360 2
port 26362
sentinel monitor mymaster 127.0.0.1 6360 2
将三个sentinel.config分别放到不一样的文件夹下
启动sentinel服务
./bin/redis-sentinel ./6360/sentinel-6360.conf
./bin/redis-sentinel ./6361/sentinel-6361.conf
./bin/redis-sentinel ./6362/sentinel-6362.conf
结果如图:
测试方法 把6360端口的redis杀了 而后分别链接redis6361 和redis6362 看看哪一个可以存储进去值 则哪一个变成了master 也代表哨兵成功了
由于只要主机能够写 从机只能读。
注意:
以上的这些 只涉及到 主从同步,和哨兵 这两点 ,这和集群的概念不一样。
redis主从:是备份关系, 咱们操做主库,数据也会同步到从库。 若是主库机器坏了,从库能够上。就比如你 D盘的片丢了,可是你移动硬盘里边备份有。redis哨兵:哨兵保证的是HA,保证特殊状况故障自动切换,哨兵盯着你的“redis主从集群”,若是主库死了,它会告诉你新的老大是谁。redis集群:集群保证的是高并发,由于多了一些兄弟帮忙一块儿扛。同时集群会致使数据的分散,整个redis集群会分红一堆数据槽,即不一样的key会放到不不一样的槽中--------------------- 做者:zmemorys 来源:CSDN 原文:https://blog.csdn.net/zmemorys/article/details/78196314 版权声明:本文为博主原创文章,转载请附上博文连接!