redis要点干货总结(内有阅读文章推荐,读这两篇,redis就够了)

Redis是一个开源的、基于内存的数据结构存储器,可以用作数据库、缓存和消息中间件。
1.缓存
redis采用hash算法落实在缓存中快速查找一个key对应的value。hash表的结构很容易理解。但是redis是在一般hash算法的基础上做了优化的(rehash),不然一个hash表的一个元素(是一个链)太长,效率归于顺序查找,也没体现hash表的作用。

2.CS架构
redis的server是单线程的服务器,因为局限redis的已经不是cpu,而是内存和网络带宽的限制。
集群的使用就是为了应对多客户端访问带来的压力。
(负载均衡算法的使用[一般是一致性hash算法],将请求分散到各个redis服务器上,扩大存储容量并提升了吞吐量!)
3.主从复制架构
前述的一般集群还是存在一定的问题,可用性差(挂了一台,其他压力过大);数据查询缓慢(一直集中访问一个数据的话存在数据查询效率问题)。

通过Master-Slave模式,我们又实现了两个特性:

  • 数据高可用:Master负责接收客户端的写入请求,将数据写到Master后,同步给Slave,实现数据备份。一旦Master挂了,可以将Slave提拔为Master;
  • 提高查询效率:一旦Master发现自己忙不过来了,可以把一些查询请求,转发给Slave去处理,也就是Master负责读写或者只负责写,Slave负责读;

4.其他问题
数据结构、淘汰策略、负载均衡、数据持久化、一致性等,可以见质量比较好的博客中给出的解释。
论文: https://www.cs.helsinki.fi/u/paksula/misc/redis.pdf
质量较好的博客:https://baijiahao.baidu.com/s?id=1660009541007805174&wfr=spider&for=pc
5.与memcacheDB的比较

  • 存储方式上:Memcache 会把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。Redis
    有部分数据存在硬盘上,这样能保证数据的持久性。
  • 数据支持类型上:Memcache 对数据类型的支持简单,只支持简单的 key-value,而 Redis 支持五种数据类型。
  • 使用底层模型不同:它们之间底层实现方式以及与客户端之间通信的应用协议不一样。Redis 直接自己构建了 VM
    机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
  • Value 的大小不同:Redis 可以达到 1GB,而 Memcache 只有 1MB。
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读