Redis五大基本类型及其应用

本文章包含了五大基本类型的常见操作以及其应用场景。

简介

Redis五大基本类型有String、List、Set、ZSet、Hash,在昨天我浅浅谈了下String的常见操作,感兴趣的朋友可以看一下,Redis五大基本数据类型之String,下面我们从List开始。

List

List底层是双端链表,我们可以通过POP和PUSH对它的左端和右端进行操作

 lpush、rpush、lpop、rpop

 lpush为左插入操作,rpush为右插入操作,lpop为左移除操作,rpop为右移除操作,这是List最基础的操作。

127.0.0.1:6379> lpush list1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> rpush list2 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lrange list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> lrange list2 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"

可见右插入的顺序和遍历顺序一致,左插入则相反。

补充:lrang用于遍历,可以指定遍历起始位置和结束位置,若为0 -1则遍历所有元素。

lindex

用于查询指定下标元素(从0开始)

127.0.0.1:6379> lindex list2 0
"1"
127.0.0.1:6379> lindex list2 3
"4"

llen        

用于获取集合长度。

127.0.0.1:6379> llen list1
(integer) 5

lrem

用于移除list中的值,有两个参数,第一个参数指移除该参数的个数,第二个参数为移除的值。

127.0.0.1:6379> lrange listRem 0 -1
1) "5"
2) "4"
3) "4"
4) "3"
5) "3"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> lrem listRem 2 3
(integer) 2
127.0.0.1:6379> lrange listRem 0 -1
1) "5"
2) "4"
3) "4"
4) "3"
5) "2"
6) "1"

可见移除了listRem中2个值为3的数据(list为有序可重复,这与后面的set无序不可重复相反)

这里第一个参数无论设置0/1,移除的个数都为1,并且如果实际中集合元素数量不够,不会报错,全部移除后返回成功移除后的数量。

lset

lset list n x,更新list集合中下标为n的元素为"x"

127.0.0.1:6379> lrange listRem 0 -1
1) "5"
2) "4"
3) "4"
4) "3"
5) "2"
6) "1"
127.0.0.1:6379> lset listRem 0 test1
OK
127.0.0.1:6379> lrange listRem 0 -1
1) "test1"
2) "4"
3) "4"
4) "3"
5) "2"
6) "1"

LINSERT

LINSERT list after x xx,在list中的"x"元素之后插入"xx"

LINSERT list before x xx,在list中的"x"元素之前插入"xx"

127.0.0.1:6379> rpush listInsert aa bb cc
(integer) 3
127.0.0.1:6379> linsert listInsert after aa xxx
(integer) 4
127.0.0.1:6379> linsert listInsert before cc yyy
(integer) 5
127.0.0.1:6379> lrange listInsert 0 -1
1) "aa"
2) "xxx"
3) "bb"
4) "yyy"
5) "cc"

应用

        我觉得list非常适用于发布订阅的设计模式。在发布者更新新消息时,往该订阅该发布者的众多订阅者向list中插入更新的消息id,然后在遍历每一个订阅者的list,通过消息id查出消息内容,就能显示出订阅的内容了。

明天更新...

Set

ZSet

Hash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值