Redis基本命令2

SET类型

集合类型的常用操作是向集合中加入或删除元素、判断某个元素是否存在等,由于集合类型的Redis内部是使用值为空的散列表实现,所有这些操作的时间复杂度都为0(1)。

Redis还提供了多个集合之间的交集、并集、差集的运算。

sadd myset a (在myset中加入a)

sadd myset b c(在myset中加入b c)

srem myset c (移除c)

srem a b (移除b c)

smembers myset(获取myset中所有元素)

sismember myset a(判断a是否在myset中)

sdiff seta setb(求seta和setb的差集及在a中并且不在b中的元素)

sinter seta setb(求seta和setb的交集)

sunion seta setb(求seta和setb的并集)

scard seta(获取seta中元素个数)

spop seta(从seta中弹出一个元素由于set是无序的所以是随机弹出一个元素)

 

SORTED SET(ZSET)

在集合类型的基础上,有序集合类型为集合中的每个元素都关联一个分数,这使得我们不仅可以完成插入、删除和判断元素是否存在在集合中,还能够获得分数最高或最低的前N个元素、获取指定分数范围内的元素等与分数有关的操作。

在某些方面有序集合和列表类型有些相似。

1、二者都是有序的。

2、二者都可以获得某一范围的元素。

但是,二者有着很大区别:

1、列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会变慢。

2、有序集合类型使用散列表实现,所有即使读取位于中间部分的数据也很快。

3、列表中不能简单的调整某个元素的位置,但是有序集合可以(通过更改分数实现)

4、有序集合要比列表类型更耗内存。

zadd EnglishScore 80 zhangsan(在EnglishScore 中加入zhangsan分数为80)

zadd EnglishScore 70 lisi 90 wangwu(在EnglishScore 中加入lisi 分数为70,wangwu分数为90)

zscore EnglishScore lisi(获取lisi分数)

zrem EnglishScore lisi(删除lisi)

zrem EnglishScore  zhangsan wangwu(删除zhangsan和wangwu)

zrange  EnglishScore  0 1(按照元素分数从小到大的顺序返回索引从0到1之间的所有元素(包含两端的元素)结果显示不包含分数)

zrange  EnglishScore  0 1 withscores(按照元素分数从小到大的顺序返回索引从0到1之间的所有元素(包含两端的元素)结果显示包含分数)

zrevrange EnglishScore  0 1 (按照元素分数从大到小的顺序返回索引从0到1之间的所有元素(包含两端的元素))

zrangebyscore EnglishScore  70 80(按照元素分数从小到大的顺序返回分数从70到80之间的所有元素(包含两端的元素))

zrevrangebyscore EnglishScore 70 80 (按照元素分数从大到小的顺序返回分数从70到80之间的所有元素(包含两端的元素))

zincrby EnglishScore 10 lisi(为元素lisi分数加10返回值是更改后的分数)

zcard EnglishScore(获取元素数量)

zcount EnglishScore 70 80(获取元素分数在70-80的数量)

zremrangebyrank EnglishScore 0 1(按照元素排名删除元素即删除排名为1,2的元素)

zremrangebyscore EnglishScore 70 80(按照分数删除元素即删除分数为70-80的元素)

zrank EnglishScore lisi(获取元素排名从小到大)

zrevrank EnglishScore lisi(获取元素排名从大到小)

 

Keys命令

Redis在实际使用过程中更多的用作缓存,然而缓存的数据一般都是需要设置生存时间的,即:到期后数据销毁。

expire keys seconds( 设置key的生存时间(单位:秒)key在多少秒后会自动删除

ttl keys(查看key剩余生存时间)

persist key(清除生存时间

pexpire key milliseconds(生存时间设置单位为:毫秒)

 keys mylist*(返回通配符,符合的key)

exists key(判断key是否存在)

del key(删除key)

rename key key_name(重命名key)

type key(返回key的类型)

你可能感兴趣的:(redis)