Redis数据类型

类型 简介 特性 可存储的值 操作 场景
String 字符串,二进制安全 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M 字符串,整,浮点数 1. 对整个字符串或者字符串中的一部分执行操作,2. 对整数或浮点数执行自增或自减操作 缓存、限流、计算器、分布式锁、分布式session
Hash 字典,键值对集合,即编程语言中的Map类型 适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去) 包含键对值的无序散列表 1. 添加,获取,移除单个键对值;2. 获取所有键对值;3. 检查某个键对值是否存在 存储、读取、修改用户信息、用户主页访问量、组合查询
List 列表,链表(双向链表) 增删快,提供了操作某一段元素的API 链表 1. 从两端压入或者弹出元素;2. 读取多个或者单个元素进行修剪;3. 只保留一个范围内的元素 最新消息排行等功能(比如朋友圈的时间线) 、消息队列、时间轴
Set 集合,哈希表实现,元素不重复 1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作 无序集合 1. 添加,获取,移除单个元素;2. 检查一个元素是否存在与集合中;3.计算交集,并集,差集;4. 从集合里面随机获取元素 共同好友 、利用唯一性,统计访问网站的所有独立ip 、好友推荐时,根据tag求交集,大于某个阈值就可以推荐,赞,踩,标签,好友关系
ZSet Sorted Set(有序集合),将Set中的元素增加一个权重参数score,元素按score有序排列 数据插入集合时,已经进行天然排序 有序集合 1. 添加,获取,移除单个元素;2. 根据分值范围或成员来获取元素;3. 计算一个键的排名 排行榜 、带权重的消息队列