redis缓存

1.什么是redis?

redis 是一个 高性能的 key-value数据库 ,它是完全开源免费的,而且 redis 是一个NOSQL 类型数据库,是为了解决 高并发 高扩展 大数据存储 等一系列的问题而产生的数据库解 决方案,是一个 非关系型 的数据库。
Redis 的出色之处不仅仅是性能, Redis 最大的魅力是 支持保存多种数据结构 ,此外 单个
value 的最大限制是 1GB ,不像 memcached 只能保存 1MB 的数据,因此 Redis 可以用来实
现很多有用的功能,比方说用他的 List 来做 FIFO 双向链表 ,实现一个 轻量级的高性能消息
队列服务 ,用他的 Set 可以做 高性能的 tag 系统 等等。另外 Redis 也可以对存入的 Key- Value设置 expire 时间,因此也可以被当作一个功能加强版的memcached 来用。
2.Redis常用的数据结构?
Redis 支持的常用 5 种数据类型指的是 value类型,分别为: 字符串 String 列 表List 哈希 Hash 集合 Set 有序集合 Zset ,但是 Redis 后续又丰富了几种数据 类型分别是Bitmaps HyperLogLogs
GEO
Redis 底层的数据结构包括: 简单动态数 组SDS 链表 字典 跳跃链表 整数集合 压缩列表 对象
Redis 为了 平衡空间和时间效率 ,针对 value的具体类型在底层会 采用不同的数 据结构来实现 ,其中哈希表和压缩列表 是复用比较多的数据结构
3.Redis有哪些数据类型?
Redis 主要有 5 种数据类型,包括 String List Set Zset Hash ,满足大部分的使用要求
String   二进制安全    可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M     做简单的键值对缓存
List      链表(双向链表)  增删快,提供了操作某一段元素的API   1,最新消息排行等功能(比如朋友圈的时间线) 2,消息队列
Set     哈希表实现,元素不重复     1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作     1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐
Zset(有序集合)   将Set中的元素增加一个权重参数score,元素按score有序排列   数据插入集合时,已经进行天然排序    1、排行榜 2、带权重的消息队列
Hash   键值对集合,即编程语言中的Map类型     适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去)     存储、读取、修改用户属性
4.为什么Redis单线程模型效率也能这么高?
1. C 语言实现,效率高
2. 纯 内存 操作
3. 基于非阻塞的IO 复用模型机制
4. 单线程的话就能 避免多线程的频繁上下文切换
5. 丰富的数据结构(全称 采用 hash 结构,读取速度 据存储进行了一些优化 ,比如 压缩表 跳跃表 等)
          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值