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 表示列表的倒数第二个元素,以此类推。
使用场景
- 消息排队功能,比如新浪微博的 TimeLine
- 消息队列,使用 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
使用场景:
利用去重的唯一性
- 标签:给用户添加标签,或者用户给消息添加标签,这样有统一标签的可以推荐给关注的人或者关注的事
- 聚合场景:共同点赞、收藏,一些抽奖互动
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)!