redis 基本数据类型及操作学习(二)

【list类型和操作】

linsert: 在key对应特定的位置前或者后添加字符串元素; 【用法】:linsert list before 元素 要插入的元素

lset : (将list 中指定下标的元素 替换掉)设置list中指定下标元素的替换值。 【用法】:lset list 元素下标 要插入的新元素

demo:


lrem : 从key 对应的list中删除n个相同指定元素 【用法】:lrem list 个数 元素值

demo:


ltrim:保留指定key的值内范围的数据。【用法】: ltrim list 起始保留元素下标 结束保留元素下标

demo:


lpop :从list的头部删除元素,并返回删除元素。

rpop: 从list的尾部删除元素,并返回删除元素。 【用法】:lpop/rpop list

rpoplpush :从第一个list的尾部 移除元素 添加到第二个list的头部。 【用法】: rpoplpush list1 list2

demo:


【sets类型和操作】

set:是string类型的无序集合;set是通过hash table 进行实现的,添加、删除、修改的复杂度都是0(1);我们可以对集合区交集、并集、差集。集合中不允许重复的值

【可通过这些用来实现sns中的好友推荐(取差集)和blog的tag功能】

sadd:向key 对应的set集合添加元素。添加成功返回1 ;失败返回0。

srem:删除名称为key的set集合中的元素。删除成功返回1; 失败返回0。

spop:随机删除并返回key为set的集合中的元素。

smembers : 查看集合

demo:

redis 127.0.0.1:6379> smembers myset
1) "alibaba"
2) "baidu"
3) "tenxun"
redis 127.0.0.1:6379> sadd myset1 youku
(integer) 1
redis 127.0.0.1:6379> sadd myset1 baidu
(integer) 1
redis 127.0.0.1:6379> sadd myset1 tudou
(integer) 1
redis 127.0.0.1:6379> srem myset tudou
(integer) 0
redis 127.0.0.1:6379> srem myset1 tudou
(integer) 1
redis 127.0.0.1:6379> smembers myset1
1) "baidu"
2) "youku"
redis 127.0.0.1:6379> spop myset1
"youku"

sdiff: 返回所有给定key 与第一个key集合的差集(就是不同元素集合),以给定的第一个key 为标准,谁在前面,返回谁和其他key 不同的集合元素
sdiffstore :将所有给定key 与第一个key集合的差集,并且将结果存储到另外一个key集合中 。 【用法】: sdiffstore 存储差集的key key1 比对的key2
demo:
redis 127.0.0.1:6379> smembers myset1
1) "tudou"
2) "baidu"
redis 127.0.0.1:6379> smembers myset
1) "alibaba"
2) "baidu"
3) "tenxun"
redis 127.0.0.1:6379> sdiff myset myset1
1) "alibaba"
2) "tenxun"
redis 127.0.0.1:6379> sdiff myset1 myset
1) "tudou"
redis 127.0.0.1:6379> sdiffstore myset2 myset1 myset
(integer) 1
redis 127.0.0.1:6379> smembers myset2
1) "tudou"

sinter:取两个key的交集 并返回交集的元素。
sinterstore:取两个key的交集 并将返回交集的元素存储到另外一个key中。 【用法】:sinterstore 存储交集的key key1 比对的key2
sunion:取给定key的并集,并返回并集元素。
sunionstore:取给定key的并集,并返回并集元素存储到另一个key中 。【用法】:类似与交集
demo:
redis 127.0.0.1:6379> sinter myset1 myset
1) "baidu"
redis 127.0.0.1:6379> sinterstore myset3 myset1 myset
(integer) 1
redis 127.0.0.1:6379> smembers myset3
1) "baidu"
redis 127.0.0.1:6379> sunion myset1 myset
1) "alibaba"
2) "baidu"
3) "tudou"
4) "tenxun"
redis 127.0.0.1:6379> sunionstore myset4 muset1 myset
(integer) 3
redis 127.0.0.1:6379> smembers myset4
1) "alibaba"
2) "baidu"
3) "tenxun"

smove:将第一个key对应set中的元素移除,并添加到第二个集合set中。 【用法】 smove 集合key1 集合key2 要移除key1的元素1
scard:返回key对应set的元素个数。
sismember: 校验key对于set中是否存在该元素。

【 sorted sets类型和操作】

sorted sets(zset)是set的一个升级版本,在set集合基础上添加一个顺序属性;这个顺序在添加修改元素时可以指定。每次指定之后,zset集合会自动按照新的值调整顺序。

可以把zset 看成两张mysql表。一张原来存储顺序;一张来存储value元素。key可以理解为zset集合名称。

zadd:向有机集合中添加元素并且指定顺序号;如果元素已经存在,就重新指定顺序号。 【用法】:zadd zset集合 顺序号 元素。

zrem:删除有机集合中的指定元素。

demo:

redis 127.0.0.1:6379> zadd zset1 1 alibaba
(integer) 1
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> zadd zset1 2 baidu
(integer) 1
redis 127.0.0.1:6379> zadd zset1 3 baidu
(integer) 0
redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "alibaba"
2) "1"
3) "baidu"
4) "3"

zincrby:如果往有机集合中元素已经在集合中存在,则该元素的score(顺序)将增加increment,如果元素不存在,则添加元素,其score值为increment值。

demo:

redis 127.0.0.1:6379> zincrby zset1 4 tenxun
"4"
redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "alibaba"
2) "3"
3) "baidu"
4) "3"
5) "tenxun"
6) "4"
redis 127.0.0.1:6379> zincrby zset1 3 alibaba
"6"
redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "baidu"
2) "3"
3) "tenxun"
4) "4"
5) "alibaba"
6) "6"

zrank:按照sores从小到大排序,并且返回指定的元素的下标(下标是从零开始)

zrevrank:按照sores从大到小排序,并且返回指定的元素的下标(下标是从零开始)

zrevrange :按照score的从大到小排序,并且返回整个zset元素

zrangebyscore :返回给定区间的集合元素

zcount: 返回给定区间中元素数量

zcard:zset集合元素数量

demo:

redis 127.0.0.1:6379> zrank zset1 alibaba
(integer) 2
redis 127.0.0.1:6379> zrevrank zset alibaba
(nil)
redis 127.0.0.1:6379> zrevrank zset1 alibaba
(integer) 0
redis 127.0.0.1:6379> zrevrange zset1 0 -1 withscores
1) "alibaba"
2) "6"
3) "tenxun"
4) "4"
5) "baidu"
6) "3"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值