redis存mysql数据类型_缓存数据库-redis数据类型和操作(list)

一:Redis 列表(List)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

List操作,redis中的List在在内存中按照一个name对应一个List来存储。如图:

c3e9818c20ed2ddd496ab7133c9140a6.png

二:列表常用操作

1)lpush(name,values)  在name对应的list中添加元素,每个新的元素都添加到列表的最左边

2)rpush(name, values) 在name对应的list中添加元素,每个新的元素都添加到列表的最右边

3)lpushx(name,value)  在name对应的list中添加元素,只有name已经存在时,值添加到列表的最左边

4)rpushx(name, value) 在name对应的list中添加元素,只有name已经存在时,值添加到列表的最右边

5)llen(name) name对应的list元素的个数

6)linsert(name, where, refvalue, value))  在name对应的列表的某一个值前或后插入一个新值

# 从一个列表的右侧移除一个元素并将其添加到另一个列表的左侧

三:示例

[BEGIN] 2017/7/30 20:56:36

127.0.0.1:6379> lpush name "shi"(integer)1

127.0.0.1:6379> lpush name "san"(integer)2

127.0.0.1:6379> LRANGE name 0 -1

1) "san"

2) "shi"

127.0.0.1:6379>RPUSH name jun

(integer)3

127.0.0.1:6379> LRANGE name 0 -1

1) "san"

2) "shi"

3) "jun"

127.0.0.1:6379>LPUSHX name tianshi

(integer)4

127.0.0.1:6379> LRANGE name 0 -1

1) "tianshi"

2) "san"

3) "shi"

4) "jun"

127.0.0.1:6379>LPUSHX name1 tianshi

(integer)0

127.0.0.1:6379>RPUSHX name xiaoliu

(integer)5

127.0.0.1:6379> LRANGE name 0 -1

1) "tianshi"

2) "san"

3) "shi"

4) "jun"

5) "xiaoliu"

127.0.0.1:6379>RPUSHX name1 xiaoliu

(integer)0

127.0.0.1:6379>LLEN name1

(integer)0

127.0.0.1:6379>LLEN name

(integer)5

127.0.0.1:6379> LINSERT name after shi 111(integer)6

127.0.0.1:6379> LRANGE name 0 -1

1) "tianshi"

2) "san"

3) "shi"

4) "111"

5) "jun"

6) "xiaoliu"

127.0.0.1:6379> lset name 0 222OK127.0.0.1:6379> LRANGE name 0 -1

1) "222"

2) "san"

3) "shi"

4) "111"

5) "jun"

6) "xiaoliu"

127.0.0.1:6379>lrem name xiaoliu

(error) ERR wrong number of argumentsfor 'lrem'command127.0.0.1:6379> LREM name xiaoliu 1(error) ERR valueis not an integer or outof range127.0.0.1:6379> LREM name xiaoliu 0(error) ERR valueis not an integer or outof range127.0.0.1:6379> LRANGE name 0 -1

1) "222"

2) "san"

3) "shi"

4) "111"

5) "jun"

6) "xiaoliu"

127.0.0.1:6379> LREM name 1xiaoliu

(integer)1

127.0.0.1:6379> LRANGE name 0 -1

1) "222"

2) "san"

3) "shi"

4) "111"

5) "jun"

127.0.0.1:6379>lpop name"222"

127.0.0.1:6379> LRANGE name 0 -1

1) "san"

2) "shi"

3) "111"

4) "jun"

127.0.0.1:6379> LINDEX name 2

"111"

127.0.0.1:6379> LTRIM name 0 2OK127.0.0.1:6379> LRANGE name 0 -1

1) "san"

2) "shi"

3) "111"

127.0.0.1:6379> LPUSH name 1aaa

(integer)5

127.0.0.1:6379>LPUSH name1 aaa

(integer)1

127.0.0.1:6379> LRANGE name 0 -1

1) "aaa"

2) "1"

3) "san"

4) "shi"

5) "111"

127.0.0.1:6379>RPOPLPUSH name name1"111"

127.0.0.1:6379> LRANGE name1 0 -1

1) "111"

2) "aaa"

127.0.0.1:6379>BLPOP name name1

(error) ERR timeoutis not an integer or outof range127.0.0.1:6379> BLPOP name name1 1

1) "name"

2) "aaa"

127.0.0.1:6379> LRANGE name 0 -1

1) "1"

2) "san"

3) "shi"

127.0.0.1:6379> LRANGE name1 0 -1

1) "111"

2) "aaa"

127.0.0.1:6379> BLPOP name name1 1

1) "name"

2) "1"

127.0.0.1:6379> BLPOP name1 name 1

1) "name1"

2) "111"

127.0.0.1:6379> LRANGE name 0 -1

1) "san"

2) "shi"

127.0.0.1:6379> LRANGE name1 0 -1

1) "aaa"

127.0.0.1:6379> BRPOPLPUSH name1 name 0

"aaa"

127.0.0.1:6379> BRPOPLPUSH name1 name 0 这里没有name1中没有数据的时候就会阻塞,直到有结果过来

"222" 通过下面窗口发一条数据过来(70.24s)

给nam1发送一个结果222

[root@localhost ~]# redis-cli127.0.0.1:6379> RPUSH name1 222(integer)1

127.0.0.1:6379>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值