redis总结

1.什么是redis?
redis是一个开源的,高性能的,基于键值对的缓存与存储系统 ,提供通过多种键值数据类型来适应不同场景下的缓存与存储要求。
2.redis的特点
redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过数据库数据flush到硬盘上进行保存。因为是纯内存操作,redis的性能十分出色,每秒可以处理超过10万次读写操作,是已知性能最快的Key-Value数据库。
Redis还支持保存多种数据结构,此外单个value的最大限制是1GB,不像memcached只能保存1MB的数据,因此redis可以用来实现很多有用的功能。比如用List来做FIFO双向链表,实现一个轻量级的高性能消息队列服务,用它的Set可以做高性能的tag系统等。另外redis也可以对存入的key-value设置过期时间。
redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能的读写,因此redis适合的场景主要局限在较小的数据量的高性能操作和运算上。
3.使用redis有哪些好处?
(1)速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
(2)支持丰富的数据类型,支持string,list,set,sorted set,hash
(3)支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
(4)丰富的特性:可以用作缓存,消息队列,按key设置过期时间,过期后将会自动删除
4.redis相比memcached的优势
(1)memcached所有的值均是简单的字符串,redis支持更为丰富的数据类型
(2)redis的速度比memcached快很多
(3)redis可以持久化其数据
5.memcached与redis的区别
(1)存储方式memecached把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。redis有部分存在硬盘上,这样能保持数据的持久性。
(2)redis有复杂的数据支持类型
(3)使用底层模型不同,它们之间底层实现方式以及与客户端之间通信的应用协议不一样。
6.mysql里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据
相关知识:redis内存数据集大小上升到一定大小的时候就会施行数据淘汰策略(回收策略)。redis支持6种数据淘汰策略:
(1)volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
(2)volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
(3)volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
(4)allkeys-lru:从数据集(server.bd[i].dict)中挑选最近最少使用的数据淘汰
(5)allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
(6)no-enviction(驱逐):禁止驱逐数据
7.为什么redis需要把所有数据放到内存中?
redis为了达到最快的读写速度将数据都读写到内存中,并通过异步的方式将数据写入磁盘。所以redis具有快速和数据持久化的特征。如果不将数据放在内存中,磁盘IO速度将严重影响redis的性能。在内存越来越便宜的今天,redis将会越来越受欢迎。
如果设置了最大使用内存,则数据已有记录数达到内存限值后不能继续插入新值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值