Redis如何实现数据库读写分离详解
前言
Redis是一种NoSQL的文档数据库,通过key-value的结构存储在内存中,Redis读的速度是110000次/s,写的速度是81000次/s,性能很高,使用范围也很广。Redis是一个key-value存储系统。和Memcached类似,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++(hiredis),C#,PHP,JavaScript,Perl,Object-C,Python,Ruby等客户端,使用很方便。
下面用一个实例实现redis的读写分离,步骤如下:
第一步:下载redis
官网下载地址: https://redis.io/download
本地下载地址:https://www.jb51.net/softs/541181.html
下载最新的稳定版,解压拷贝到 ~/redis 中
编译代码:
$ make $ test
第二步:配置redis
编辑redis.conf文件
bind 127.0.0.1 port 6379
拷贝redis.conf文件,改名为slave.conf,打开编辑
bind 127.0.0.1 port 6380 slaveof 127.0.0.1 6379
第三步:运行服务
开启【主服务】
$ src/redis-server
开启【从服务】
$ src/redis-server slave.conf
运行【主服务】的客户端
$ src/redis-cli
运行【从服务】的客户端
$ src/redis-cli -h 127.0.0.1 -p 6380
查看主从服务的关系
$ src/redis-cli info replication
第四步:测试服务器
下面实例演示:在主服务器中存储一些数据,然后在从服务器中查询出来
可以看出,从服务器成功的获取到了主服务器的备份数据。
假如我们在从服务器中保存数据,看结果如何?
提示错误:
(error) READONLY You can't write against a read only slave.
说明从服务器只能读数据,而不能写入数据。
数据在【从服务器】里【读】,在【主服务器】里【写】。
这样就实现了redis数据库的读写分离功能。
总结