Redis如何实现数据库读写分离详解

时间:2022-04-24 08:27:48

前言

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

Redis如何实现数据库读写分离详解

下载最新的稳定版,解压拷贝到 ~/redis 中

Redis如何实现数据库读写分离详解

编译代码:

?
1
2
$ make
$ test

第二步:配置redis

编辑redis.conf文件

?
1
2
bind 127.0.0.1
port 6379

拷贝redis.conf文件,改名为slave.conf,打开编辑

?
1
2
3
bind 127.0.0.1
port 6380
slaveof 127.0.0.1 6379  

第三步:运行服务

开启【主服务】

?
1
$ src/redis-server

开启【从服务】

?
1
$ src/redis-server slave.conf

 运行【主服务】的客户端

?
1
$ src/redis-cli

运行【从服务】的客户端

?
1
$ src/redis-cli -h 127.0.0.1 -p 6380

查看主从服务的关系

?
1
$ src/redis-cli info replication  

Redis如何实现数据库读写分离详解

第四步:测试服务器

下面实例演示:在主服务器中存储一些数据,然后在从服务器中查询出来

 Redis如何实现数据库读写分离详解

Redis如何实现数据库读写分离详解

可以看出,从服务器成功的获取到了主服务器的备份数据。

假如我们在从服务器中保存数据,看结果如何?

Redis如何实现数据库读写分离详解

提示错误:

(error) READONLY You can't write against a read only slave.

 说明从服务器只能读数据,而不能写入数据。

数据在【从服务器】里【读】,在【主服务器】里【写】。

这样就实现了redis数据库的读写分离功能。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。