Redis相关
Posted kingshine007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis相关相关的知识,希望对你有一定的参考价值。
一、如何解决数据库高并发
1、缓存式Web应用程序架构
2、增加Redis缓存数据库
3、增加数据库索引
4、页面静态化
5、使用存储过程
6、mysql主从读写分离
7、分表分库
8、负载均衡集群。负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。
二、Redis并发竞争问题解决方式
1、可以使用独占锁的方式,类似操作系统的mutex 机制,不过实现相对复杂,成本较高。
2、使用乐观锁的方式进行解决(成本较低,非阻塞,性能较高)
本质上是假设不会进行冲突,使用Redis 的命令watch 进行构造条件
三、Redis优缺点
优点
1、读写性能优异
2、支持数据持久化,AOF和RDB两种持久化方式
3、支持主从复制,主机自动将数据同步到从机,可以进行读写分离
4、数据结构丰富:支持string、hash、set、sortedset、list 等数据结构
缺点
1、Redis 不具备自动容错和恢复功能。主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP 才能恢复。
2、主机宕机,宕机前有部分数据未能及时同步到从机,切换IP 后还会引入数据不一致的问题,降低了系统的可用性。
3、Redis 的主从复制采用全量复制。复制过程中主机会fork 出一个子进程对内存做一份快照,并将子进程的内存快照保存为文件发送给从机,这一过程需要确保主机有足够多的空余内存。若快照文件较大,对集群的服务能力会产生较大的影响,而且复制过程是在从机新加入集群或者从机和主机网络断开重连时都会进行,也就是网络波动都会造成主机和从机间的一次全量的数据复制,这对实际的系统运营造成了不小的麻烦。
4、Redis 较难支持在线扩容。在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。
四、Redis使用场景
1、取最新N个数据的操作
2、排行榜应用,取TOP N 操作
3、需要精准设定过期时间的应用
4、计数器应用
5、uniq 操作,获取某段时间所有数据排重值
6、Pub/Sub 构建实时消息系统
7、构建队列系统
8、缓存
以上是关于Redis相关的主要内容,如果未能解决你的问题,请参考以下文章