redis针对不同场景进行相关的策略的记录,临时未代码实现
2016-12-15 16:10
971 查看
并发不高的情况:
读: 读redis->没有,读mysql->把mysql数据写回redis,有的话直接从redis中取;
写: 写mysql->成功,再写redis;
并发高的情况:
读: 读redis->没有,读mysql->把mysql数据写回redis,有的话直接从redis中取;
写:异步话,先写入redis的缓存,就直接返回;定期或特定动作将数据保存到mysql,可以做到多次更新,一次保存;
若mysql更新失败,则需要及时清除缓存及同步redis主键
阅读次数、限制用户操作次数等这种数据可以使用第二种
分布式
redis支持主从的模式。原则:Master会将数据同步到slave,而slave不会将数据同步到master。Slave启动时会连接master来同步数据。
这是一个典型的分布式读写分离模型。我们可以利用master来插入数据,slave提供检索服务。这样可以有效减少单个机器的并发访问数量
读写分离模型
通过增加Slave DB的数量,读的性能可以线性增长。为了避免Master DB的单点故障,集群一般都会采用两台Master DB做双机热备,所以整个集群的读和写的可用性都非常高。
读写分离架构的缺陷在于,不管是Master还是Slave,每个节点都必须保存完整的数据,如果在数据量很大的情况下,集群的扩展能力还是受限于单个节点的存储能力,而且对于Write-intensive类型的应用,读写分离架构并不适合。
读写分离模型
数据分片模型
为了解决读写分离模型的缺陷,可以将数据分片模型应用进来。
可以将每个节点看成都是独立的master,然后通过业务实现数据分片。
结合上面两种模型,可以将每个master设计成由一个master和多个slave组成的模型。
基础数据可以放到缓存redis中,这样减少表的关联;
读: 读redis->没有,读mysql->把mysql数据写回redis,有的话直接从redis中取;
写: 写mysql->成功,再写redis;
并发高的情况:
读: 读redis->没有,读mysql->把mysql数据写回redis,有的话直接从redis中取;
写:异步话,先写入redis的缓存,就直接返回;定期或特定动作将数据保存到mysql,可以做到多次更新,一次保存;
若mysql更新失败,则需要及时清除缓存及同步redis主键
阅读次数、限制用户操作次数等这种数据可以使用第二种
分布式
redis支持主从的模式。原则:Master会将数据同步到slave,而slave不会将数据同步到master。Slave启动时会连接master来同步数据。
这是一个典型的分布式读写分离模型。我们可以利用master来插入数据,slave提供检索服务。这样可以有效减少单个机器的并发访问数量
读写分离模型
通过增加Slave DB的数量,读的性能可以线性增长。为了避免Master DB的单点故障,集群一般都会采用两台Master DB做双机热备,所以整个集群的读和写的可用性都非常高。
读写分离架构的缺陷在于,不管是Master还是Slave,每个节点都必须保存完整的数据,如果在数据量很大的情况下,集群的扩展能力还是受限于单个节点的存储能力,而且对于Write-intensive类型的应用,读写分离架构并不适合。
读写分离模型
数据分片模型
为了解决读写分离模型的缺陷,可以将数据分片模型应用进来。
可以将每个节点看成都是独立的master,然后通过业务实现数据分片。
结合上面两种模型,可以将每个master设计成由一个master和多个slave组成的模型。
基础数据可以放到缓存redis中,这样减少表的关联;
相关文章推荐
- 针对不同数据库,获取当前用户所有有权限查看的表,以及表的创建时间、更新时间、注释等信息,表中字段的相关信息(包含分页实现)
- redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐
- 实现功能点1: 对 Maria 代码 git ssh 相关接口进行重构
- 设计模式:策略模式(对象的某个行为,在不同的场景中,有不同的实现算法)
- Memcache针对不同场景数据应用缓存策略
- 借助weka实现的分类器进行针对文本分类问题的特征词选择实验(实验代码备份)
- 实现同一套代码针对不同平台工程的编辑和编译
- 快速记录一下cocos2dx 3.x 全屏幕 blur 效果实现相关代码
- 第六课 自己实现路由改进,针对不同请求的路径进行响应
- redis结构设计及针对msyql相关查询实现考虑
- 本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍
- 用javascript实现记录来宾姓名的代码
- 同一空间绑定多个域名而实现访问不同页面的PHP代码
- .net2005和2003下进行https请求的不同实现
- 用javascript实现记录来宾姓名的代码
- 用asp实现的代码批量修改程序,fso相关
- 实现网页打印相关代码
- 在asp中通过getrows实现数据库记录分页的一段代码
- 1.1和2.0下进行https请求的不同实现
- 用NextInstaller实现针对不同的操作系统设置不同的注册表