Redis常用数据结构

KEY

VALUE

string

list

set

hash

zset

1.string类型

Redis中最基本的类型,它是key对应的一个单一值。二进制安全,不必担心由于编码等问题导致二进制数据变化。所以redis的string可以包含任何数据,比如jpg图片或者序列化的对象。Redis中一个字符串值的最大容量是512M。

应用

  • 分布式Session存储
  • 分布式数据库ID
  • 计数器:统计网站访问量

2.list类型

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层是双向链表,所以它操作时头尾效率高,中间效率低(额外花费查找插入位置的时间)。

在Redis中list类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是2^32-1个。

list是一个有序可以重复的数据类型。

Redis常用数据结构_第1张图片

应用

  • 实现队列、栈操作
  • 汇总日志
  • 粉丝列表
  • 关注的人列表

3.set类型

Redis的set是string类型的无序集合。它是基于哈希表实现的。set类型插入数据时会自动去重。最大可以包含2^32-1个元素。

应用

  • 签到
  • 打卡
  • 点赞

4.hash类型

本身就是一个键值对集合。可以当做Java中的Map对待。每一个hash可以存储2^32-1个键值对。

Redis常用数据结构_第2张图片

应用

  • 存储对象信息(购物车中的商品信息)
  • 存储表的信息

5.zset类型

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

应用

  • 排行榜
  • 百度热点搜索

6.Geospatial(不常用)

Redis 在 3.2 推出 Geo 类型,该功能可以推算出地理位置信息,两地之间的距离。

 Redis常用数据结构_第3张图片

 

应用

  • 获取地理位置信息
  • 两地之间的距离

7.bitmap(不常用)

直接对string的二进制位进行操作的一组命令

应用

  • 统计用户访问次数

8.HyperLogLogs(不常用)

用于大数据量基数统计,速度非常快,占用内存非常小。每个HyperLogLog键只需要花费12KB内存,就可以计算接近 2^64个不同元素的基数。比如计算网站UV(User view,用户访问数量,一个用户一天访问同一个URL地址多次合并为一次)。

你可能感兴趣的:(redis,redis,java,数据库)