Redis的五种数据类型详解(一) 最清晰版本String List

Redis 共有 5 种基本数据类型:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。

Redis中的数据都是以键值对的形式出现。

String

String类型是最简单也最长的类型。他可以存储字符串,整数,浮点数,序列化后的对象,图片(Base64编码后)。

常用命令

SET key value:设置一个键值对,将键key的值设置为value。

GET key:获取指定键的值。

MSET key1 value1 key2 value2 …… :设置多个键值对的值

MGET key1 key2 key3 : 获取多个键的值

INCR key:将指定键的值递增1。

DECR key:将指定键的值递减1。

INCRBY key increment:将指定键的值递增increment。

DECRBY key decrement:将指定键的值递减decrement。

STRLEN key:获取指定键的值的长度。

EXPIRE key seconds(通用):设置一个带有过期时间的键值对

SETEX key seconds value:设置一个带有过期时间的键值对,将键key的值设置为value,并在seconds秒后自动过期。

 基本操作

SET key value
OK
GET key
"value"
EXISTS key
(integer) 1
STRLEN key
(integer) 5
DEL key
(integer) 1
GET key
(nil)

设置过期时间

SETEX key 30 value # 设置值并设置过期时间
OK
TTL key
(integer) 27

使用场景

  • 常规数据:缓存,token,序列化后的对象,图片的Base64编码等。使用String存储序列化后的对象会比用Hash更省内存
  • 计数:用户在一段时间内的请求数,可以用于限流。
  • 分布式锁:利用Redis中的setnx来实现分布式锁。通过将一个唯一标识作为键,将值设置为某个特定的标识符,从而实现对资源的互斥访问。(不推荐)

List

在Redis中,List是以双向链表形式去呈现的。value值就是这个双向链表,可以将这个key值当作这个链表的名字。可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销。我们将他当成队列就可以。

常用命令

RPUSH key value1 value2 ...在指定列表的尾部(右边)添加一个或多个元素
LPUSH key value1 value2 ...

在指定列表的头部(左边)添加一个或多个元素

LSET key index value将指定列表索引 index 位置的值设置为 value
LPOP key移除并获取指定列表的第一个元素(最左边)
RPOP key移除并获取指定列表的最后一个元素(最右边)

LLEN key

获取列表元素数量

LRANGE key start end获取列表 start 和 end 之间 的元素

 PUSH和POP的用法

RPUSH myList value1
(integer) 1
RPUSH myList value2 value3
(integer) 3
LPOP myList
"value1"
LRANGE myList 0 1
1) "value2"
2) "value3"
LRANGE myList 0 -1
1) "value2"
2) "value3"

LRANGE用法

RPUSH myList value1 value2 value3
(integer) 3
LRANGE myList 0 1
1) "value1"
2) "value2"
LRANGE myList 0 -1
1) "value1"
2) "value2"
3) "value3"
//通过 LLEN 查看链表长度:
LLEN myList
(integer) 3

应用场景

要求顺序的业务。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值