redis 常用命令及简单理解

redis集合和列表简单理解就是集合是无序的而且里面的值具有唯一性。

有序集合和列表类型的区别:

  1. 二者都是有序的。
  2. 二者都可以获得某一范围的元素。

但是二者有着很大的区别,这使得它们的应用场景也是不同的。

  1. 列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会较慢,所以它更加适合实现如“新鲜事”或“日志”这样很少访问中间元素的应用。
  2. 有序集合类型是使用散列表和跳跃表(Skip list)实现的,所以即使读取位于中间部分的数据速度也很快(时间复杂度是O(log(N)))。
  3. 列表中不能简单地调整某个元素的位置,但是有序集合可以(通过更改这个元素的分数)。
  4. 有序集合要比列表类型更耗费内存。有序集合类型算得上是 Redis的5种数据类型中最高级的类型了,在学习时可以与列表类型和集合类型对照理解。
key-value 类型:
set     // 设置单条数据
get     // 取出单条数据
delete     // 删除数据
mset     // 批量设置数据
mget     // 批量取出数据
mdel     // 删除数据
列表类型:
delete     // 删除数据
lRange($tmp_key, 0, -1);     // 向头部插入数据 获取所有信息[0, -1]
rPush     // 向尾部插入数据
lLen     // 获取列表长度
rPop     // 获取并删除第一个值[尾部]
lPop     // 获取并删除最后一个值[头部]
lSet     // 根据索引值设置列表值
lRem     // 根据key-value从列表中移除与value相等的元素,数量为count[<0从尾部开始]
lIndex     // 获取列表里面单个元素
集合类型:
sadd // 添加1个或多个元素并返回被添加元素中并不存在与集合中的元素
srem // 移除,返回数量
sIsMember // 检测是否存在
scard // 返回数量
smembers // 返回所有元素
srandmember // 从集合里面随机返回一个或多个元素,count为正数时不会重复负数会
spop // 随机移除集合中的一个元素,并返回被移除的元素
smove source-key dest-key item // 如果集合source-key包含元素item,那么从集合source—key里面移除元素item,并将元素item添加到dest-key中;如果成功返回1否则0

组合常用:

sdiff 返回存在于第一个集合,但不存在于其他集合中的元素(差集运算)
sidffstore  dest-key key-name [key-name...] ------ 将存在于第一个集合,但不存在于其他集合中的元素存储到dest-key上
sinter 返回同时存在于所有集合中的元素(交集)
sinterstore dest-key key-name [key-name...] ------ 将同时存在于所有集合中的元素存储到dest-key上
sunion 返回那些至少存在于一个集合中的元素(并集)
sunionstore dest-key key-name [key-name...] ------ 将至少存在于一个集合中的元素存储到dest-key上
散列类型(Hash):
hmget key-name key[key...] // 从散列里面获取1个或多个键的值
hmset key-name key value [key value ...] // 为散列里面的1个或多个键设置值
hdel  key-name key[key...] // 删除散列里面的1个或多个键值对,返回成功找到并删除的键值对数量
hlen  key-name // 返回散列包含的键值对数量
hexists key-name key // 检查给定键是否存在于散列中
hkeys key-name // 获取散列包含的所有键
hvals key-name // 获取散列包含的所有值
hgetall key-name // 获取散列包含的所有键值对
hincrby key-name key incrbement // 将键key存储的值加上整数increment
hincrbyfloat key-name key incrbement // 将键key存储的值加上浮点数increment
有序集合:
zadd key-name score member [score member...] // 将带有给定分值的成员添加到有序集合里面
zrem key-name member [member...] // 从有序集合里面移除给定的成员,并返回被移除成员的数量
zcard key-name // 返回有序集合包含的成员数量
zincrby key-name increment member // 将member成员的分值加上increment
zcount key-name min max // 返回分值介于min和max之间的成员数量
zrank key-name member // 返回成员member在有序集合中的排名
zScore key-name member // 返回成员member的分值
zrange key-name start stop [WITHSCORES] // 返回有序集合中排名介于start和stop之间的成员,如果给定了可选的WITHSCORES选项,那么命令会将成员的分值也一并返回

组合常用:

zrevrank key-name member // 返回有序集合里成员member的排名,成员按照分值从大到小排列
zrevrange key-name start stop [witchscroe] // 返回有序集合给定排名范围内的成员,成员按照分值从大到小排列
zrangebyscore key min max [witchscroe] [limit offset count] // 返回有序集合中,分值介于min和max之间的所有成员
zrevrangebyscore key max min [witchscroe] [limit offset count] // 返回有序集合中,分值介于min和max之间的所有成员并按照分值从大到小排列
zremrangebyrank key-name start stop // 移除有序集合中排名介于start和stop之间的所有成员
zremrangebyscore key-name min max // 移除有序集合中分值介于min和max之间的所有成员
zinterstore dest-key key-count key [key ...] [weights [weights ...]] [AGGREGATE SUM|MIN|MAX] // 对给定的有序集合执行类似于集合的交集运算
zunionstore dest-key key-count key [key ...] [weights [weights ...]] [AGGREGATE SUM|MIN|MAX] // 对给定的有序集合执行类似于集合的并集运算
发布与订阅:
subscribe channel [channel ...] ---- 订阅给定的一个或多个频道
unsubscribe [channel [channel ...]] ---- 退订给定的一个或多个频道,如果执行时没有给定任何频道那么将退订所有频道
publish channel message ---- 向给定频道发送消息
psubscribe pattern [pattern ...] ---- 订阅于给定模式相匹配的所有频道
sunsubscribe [pattern [pattern ...] ---  退订给定的模式,如果执行时没有给定任何模式,那么退订所有模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值