redis常用命令

全局命令:

查看所有键keys *

键总数

dbsize

检查键是否存在

exists key
删除键del key [key ...]
键过期

expire key seconds

ttl命令会返回键的剩余过期时间,它有3种返回值:

大于等于0的整数:键剩余的过期时间。

-1:键没设置过期时间。

-2:键不存在

 

ttl命令观察键key的剩余过期时间

键对应的数据结构类型 type key

 五大数据类型:

字符串类型:

字符串(简单的字符串、复杂的字符串(例如JSON、XML))、数字(整数、浮点数),甚至是二进制(图片、音频、视频),但是值最大不能超过512MB。

 

设置值

set key value [ex seconds] [px milliseconds] [nx|xx]

ex seconds:为键设置秒级过期时间。

px milliseconds:为键设置毫秒级过期时间。

nx:not exisits 键必须不存在,才可以设置成功,用于添加。

xx:与nx相反,键必须存在,才可以设置成功,用于更新。

 

获取值

get key 

批量设置值

mset key value [key value ...]

mset a 1 b 2 c 3 d 4

批量获取值

mget key [key ...]mget a b c d

计数

incr key

返回结果分为三种情况:

  值不是整数,返回错误。

  值是整数,返回自增后的结果。

  键不存在,按照值为0自增,返回结果为1

 

decr(自减)

incrby(自增指定数字)

decrby(自减指定数字)

incrbyfloat(自增浮点数)

 
字符串长度strlen key 
设置并返回原值

getset key value

getset和set一样会设置值,但是不同的是,它同时会返回键原来的值

 

哈希(hash)类型:

设置值

hset key field value

hset user:1 name tom

获取值

hget key fieldhget user:1 name
删除fieldhdel key field [field ...]hdel user:1 name
计算field个数hlen key

hset user:1 name tom

hset user:1 age 23

hset user:1 city tianjin

 

hlen user:1

批量设置或获取field-value

hmget key field [field ...]

hmset key field value [field value ...]
 hmset user:1 name mike age 12 city tianjin

判断field是否存在

hexists key fieldhexists user:1 name
获取所有field

hkeys key

 hkeys命令应该叫hfields更为恰当,它返回指定哈希键所有的field

hkeys user:1
获取所有valuehvals key hvals user:1
获取所有的field-value

hgetall key

在使用hgetall时,如果哈希元素个数比较多,会存在阻塞Redis的可能。如果开发人员只需要获取部分field,可以使用hmget,

hgetall user:1
hincrby hincrbyfloathincrby和hincrbyfloat,就像incrby和incrbyfloat命令一样,但是它们的作用域是filed

hset user:1 age 25

hkeys user:1

hgetall user:1

hincrby user:1 age 10

 

列表(list)类型

在Redis中,可以对列表两端插入(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素(索引从0算起)

常用的命令字段:

 

集合内操作:

添加元素sadd key element [element ...]

exists myset

sadd myset a b c

删除元素srem key element [element ...]

 srem myset a b

计算元素个数

scard key

 scard myset

判断元素是否在集合中

sismember key element

sismember myset c

随机从集合返回指定个数元素

srandmember key [count]

 [count]是可选参数,如果不写默认为1

srandmember myset 2

从集合随机弹出元素spop keyspop myset
获取所有元素

smembers key

返回结果是无序的

smembers myset

   

集合间操作

       数据准备:  user:1:follow和user:2:follow

 sadd user:1:follow it music his sports

 sadd user:2:follow it news ent sports

求多个集合的交集 sinter key [key ...]

sinter user:1:follow user:2:follow

 1) "sports"

  2) "it"

求多个集合的并集suinon key [key ...]

sunion user:1:follow user:2:follow

  1) "sports"

  2) "it"

  3) "his"

  4) "news"

  5) "music"

  6) "ent"

求多个集合的差集 sdiff key [key ...]

sdiff user:1:follow user:2:follow

1) "music"

2) "his"

将交集、并集、差集的结果保存

sinterstore destination key [key ...]

suionstore destination key [key ...]

sdiffstore destination key [key ...]

 

sinterstore user:1_2:inter user:1:follow user:2:follow

 

有序集合:

有序集合提供了获取指定分数和元素范围查询、计算成员排名等功能

注意:有序集合中的元素不能重复,但是score可以重复,就和一个班里的同学学号不能重复,但是考试成绩可以相同。

列表、集合、有序集合三者的异同点:

 集合内

添加成员zadd key score member [score member ...]

zadd user:ranking 251 tom

zadd user:ranking 1 kris 91 mike 200 frank 220 tim 250 martin

计算成员个数

 zcard key

zcard user:ranking
计算某个成员的分数 zscore key memberzscore user:ranking tom
计算成员的排名

zrank key member

zrevrank key member

zrank是从分数从低到高返回排名,zrevrank反之。

zrank user:ranking tom

zrevrank user:ranking tom

删除成员zrem key member [member ...]zrem user:ranking mike
增加成员的分数zincrby key increment memberzincrby user:ranking 9 tom

返回指定排名范围的成员

 zrange    key start end [withscores]

 zrevrange key start end [withscores]

注意:start end可以使用0 -1代指全部  

 有序集合是按照分值排名的,zrange是从低到高返回,zrevrange反之。

如果加上withscores选项,同时会返回成员的分数:

 zrange user:ranking 0 2 withscores
返回指定分数范围成员个数zcount key min maxzcount user:ranking 200 221

集合间的操作

交集

zinterstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]

destination:交集计算结果保存到这个键。

  numkeys:需要做交集计算键的个数。

  key[key...]:需要做交集计算的键。

  weights weight[weight...]:每个键的权重,在做交集计算时,每个键中的每个member会

将自己分数乘以这个权重,每个键的权重默认是1。

     aggregate sum|min|max:计算成员交集后,分值可以按照sum(和)、min(最小值)

、max(最大值)做汇总,默认值是sum。

     下面操作对user:ranking:1和user:ranking:2做交集,weights和aggregate使用了

默认配置,可以看到目标键user:ranking:1_inter_2对分值做了sum操作:

zinterstore user:ranking:1_inter_2 2 user:ranking:1
有序集合zunionstore destination numkeys key [key ...] [weights weight [weight ...]]   [aggregate sum|min|max]zunionstore user:ranking:1_union_2 2 user:ranking:1  user:ranking:2

建管理:

键重命名

 rename key newkey 
  1. 随机返回一个键
randomkey 

键过期

 expire key seconds:键在seconds秒后过期

expireat key timestamp:键在秒级时间戳timestamp后过期

 
遍历键

全量遍历键  keys pattern

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值