自学内容网 自学内容网

Redis—5种基本数据类型

5 种基本数据类型

String(最常用)

Redis 字符串是最基本的 Redis 数据类型,表示字节序列,一个 key 对应一个 value

基本命令

# 获取存储在给定键中的值
GET key

# 设置存储在给定键中的值
SET key

# 删除存储在给定键中的值
DEL key

# 将键存储的值加1
INCR key

# 将键存储的值减1
DECR key

# 将键存储的值加上整数
INCRBY key amount

# 将键存储的值减去整数
DECRBY key amount

# 如果key不存在则给定值,返回0则表示失败,返回1表示成功
SETNX key value

使用场景

  • 缓存: 经典使用场景,把常用信息,字符串,图片或者视频等信息放到redis中,redis作为缓存层,mysql做持久化层,降低mysql的读写压力。
  • 计数器:redis是单线程模型,一个命令执行完才会执行下一个,同时数据可以一步落地到其他的数据源。
  • 分布式锁、分布式 session、分布式限流(注:分布式锁和限流器不仅限于 string)

List

Redis 中的 List 其实就是链表(Redis 使用双端队列实现 List)

基本命令

RPUSH key value # 将指定值加入到list右端
LPUSH key value  

RPOP key   #从右端弹出一个指定值
LPOP key

LRANGE #  获取列表在给定范围上的所有值

LINDEX 
# 通过索引获取列表中的元素。你也可以使用负数下标,
# 以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

使用场景

  1. 消息排队功能,比如新浪微博的 TimeLine
  2. 消息队列,使用 PUSH 和 POP 命令来对任务进行存和取(缺点:生产者需要自行实现全局性唯一 ID,不能以消费组的形式消费数据)

Hash

Redis 哈希值是一种记录类型,映射为字段-值对的集合

基本命令

# 添加键值对
HSET hash-key key value

# 获取键对应的值
HGET hash-key key

# 获取所有键值对
HGETALL hash-key

# 如果存在这个键,就删除
HDEL hash-key key

使用场景

  • 缓存:经常使用某些字段的内容 ,如:用户信息,购物车信息,视频信息。

Set

Redis 集是唯一字符串的无序集合,其作用类似于编程语言中的集合(例如 Java HashSet、Python Set 等)。使用 Redis 集合,可以在 O(1) 时间内添加、删除和测试是否存在(无论集合元素的数量有多少)。

基本命令

# 向集合中添加一个或多个成员
SADD key value

# 获得集合的成员数
SCARD key

# 返回集合中的所有成员
SMEMBERS key 

# 判断某元素是否在集合中
SISMEMBER key value

使用场景:

利用去重的唯一性

  1. 标签:给用户添加标签,或者用户给消息添加标签,这样有统一标签的可以推荐给关注的人或者关注的事
  2. 聚合场景:共同点赞、收藏,一些抽奖互动

Zset

Redis 排序集是唯一字符串的集合,它们通过每个字符串的关联分数来维护顺序

基本命令:

# 将一个带有给定分值的成员添加到有序集合里面
ZADD zset-key 178 member1 185 member2

# 根据元素在有序集合中所处的位置,从有序集合中获取多个元素
ZRANGE zset-key 0-1 withccores

# 如果给定元素成员存在于有序集合中,那么就移除这个元素
ZREM zset-key member1

# 获取给定元素的分数
ZSCORE zset-key member1

使用场景:

  • 排行榜:有序集合经典使用场景。例如小说视频等网站需要对用户上传的小说视频做排行榜,榜单可以按照用户关注数,更新时间,字数等打分,做排行。

原文地址:https://blog.csdn.net/m0_66510521/article/details/136437180

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!