缓存,Redis的机制及与MongoDB的对比

1

MongoDB与Redis区别

①. 性能方面:redis要大于mongodb

②. 操作的便利性:

a. Mongodb支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富

b. Redis数据结构方面丰富一点

③. 内存空间大小和数据量大小:

a. Mongodb适合大量数据的存储

④. 数据一致性

a. Redis事务支持比较弱

b. Mongodb不支持事务

⑤. 应用场景:

a. Redis用在数据量较小的操作和运算上

b. Mongodb:主要解决海量数据的访问效率问题


2

在项目中缓存用在哪里

在项目中经常会被查询,但不经常会被修改和删除的数据,比如:数据字典

3

Redis如何持久化

持久化就是将内存中的数据写入到硬盘中

①. RDB:是将数据写入到一个临时文件(dump.rdb),持久化结束之后,用这个临时文件替换上次持久化的文件,达到数据恢复。RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失,所以这种方式更适合数据要求不严谨的时候,默认开启的

AOF:是将执行过的指令记录下来,数据恢复时按照从前到后的顺序再将指令执行一遍,实现数据恢复。AOF的优点是可以保持更高的数据完整性,但是AOF文件比RDB文件大,且恢复速度慢,默认是关闭的

4

Redis的内存淘汰策略有那些

Redis的内存淘汰指的是用户存储的一些键可以被redis主动从实例中删除,从而产生读miss的情况,内存淘汰是为了更好的使用内存,用一定的缓存miss来换取内存的使用率。Redis提供的内存淘汰策略有:

①. noeviction:默认策略,不删除任意数据,但是内存不够时,会直接返回错误

②. Allkeys-lru:从数据集中(包括设置过期时间和未设置过期时间的数据集),优先移除最近未使用的key

③. Volatile-lru:在设置了过期时间的数据集中,优先移除最近未使用的key

④. Allkeys-random:从数据集中(包括设置过期时间和未设置过期时间的数据集),随机移除某个key

⑤. Volatile-random:在设置了过期时间的数据集中,随机移除某个key

Volatile-ttl:在设置了过期时间的数据集中,具有更早过期时间的key优先移除

5

redis有哪些数据类型

①. String(字符串):redis最基本的数据类型,一个key对应一个value,一个键最大能存储512MB

②. Hash(哈希):是一个键值对集合,特别适合用于存储对象

③. List(列表):存放多个字符串值,可以重复,按照插入顺序进行排序,也可以添加一个元素到列表的头部和尾部

④. Sets(集合):存放多个值,不可以重复,没有顺序

⑤. ZSet(有序集合):存放多个值,不可以重复,有顺序。不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序

6

Redis一般用在那些场景

①. 缓存热数据使用,热数据就是在项目中经常会被查询,但不经常会被修改和删除的数据

②. 计数器,诸如统计点击数等应用

③. 队列

④. 位操作(大数据处理),比如统计QQ用户在线

⑤. 分布式锁和单线程机制

⑥. 最新列表

⑦. 排行榜,使用zadd添加有序集合

7

集群

至少需要3台缓存服务器(企业一般用6台服务器搭建集群(从主模式))

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值