首先说结论:这个要跟你具体的架构实现以及业务相关,常见的应用场景下我觉得redis没必要进行读写分离。
先来讨论一下为什么要读写分离:
读写分离使用于大量读请求的情况,通过多个slave分摊了读的压力,从而增加了读的性能。
过多的select会阻塞住数据库,使你增删改不能执行,而且到并发量过大时,数据库会拒绝服务。
因而通过读写分离,从而增加性能,避免拒绝服务的发生。
我认为需要读写分离的应用场景是:写请求在可接受范围内,但读请求要远大于写请求的场景。
再来讨论一下redis常见的应用场景:
1. 缓存
2. 排名型的应用,访问计数型应用
3. 实时消息系统
首先说一下缓存集群,这也是非常常见的应用场景:
1. 缓存主要解决的是用户访问时,怎么以更快的速度得到数据。
2. 单机的内存资源是很有限的,所以缓存集群会通过某种算法将不同的数据放入到不同的机器中。
3. 不同持久化数据库,一般来说,内存数据库单机可以支持大量的增删查改。
4. 如果一台机器支持不住,可以用主从复制,进行缓存的方法解决。
综上,在这个场景下应用redis 进行读写分离,完全就失去了读写分离的意义。
redis是一个key-value存储系统和memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....