Redis 对所有的Key的操作命令

1.通用操作

keys *

解释:获取所有的Key

* : 统配任意字符

?: 统配单个字符

[]匹配括号间的任一个字符,可以使用 "-" 符号表示一个范围,如 a[b- d] 可以匹配 "ab","ac","ad"

\x 匹配字符x,用于转义符号,如果要匹配 "?" 就需要使用 \?

示例:

keys h* 查询key通配符

keys halouworl[da] 查询已d或者a为结尾的字符

randomkey

随机返回数据库存在的key

type key

判断key的类型

exists key

是否存在某个key,存在返回1,不存在返回0

del key1 key2 key3 .... keyn

删除一个或多个键值对

rename key newkey

将替换key的名字,会覆盖已存在的newkey,设置成功,返回ok

renamenx key newkey

替换key的名字,会检查是否已经存在newkey,设置成功返回1,不成功返回i0

select 数据库编号

切换或者选择数据库编号,例如: select 1 ,使用1好数据

move key 数据库编号

移动当前数据库中的key到别的数据库中去

ttl key 或者 pttl key

查询某个key的生命周期,返回-1代表永久有效 ,ttl已秒返回,pttl 以毫秒返回

expire key 或者 pexpire key

设置key的生命周期,expire以秒返回i,pexpire 以毫秒返回

persist key

把key指定为永久有效

2.redis 字符串命令操作

set key value [ex 秒数] [px 毫秒数] [nx]/[xx]

设置字符串键值对

ex和px不要同时写,否则会以后一个为准

nx 表示key不存在时,执行操作

xx 表示key存在时执行操作

mset key1 value1 key2 value2 ...

一次设置多个键值对

mget key1 key2 key3

一次性取出多个key

setrange key offset 字符

替换单词中的某个字母

例如: setrange key 2 ?? 从下标2开始,替换字符

注意:如果偏移量大于字符长度,则用0x00字符补充

append key value

追加

示例:

append word ha

getrange key start stop

获取字符串中某个范围内的数值,闭区间

注意字符串从左数,下标从0开始,右数下标重-1开始。前包后包

注意:

1. start >= length,则返回空字符串

2. stop >= length 则截取至字符串结尾

3. 如果start所处位置在stop右边,则返回空字符串

getset key newvalue

设置新值,返回旧值

例如:getset halou halouworld

incr key

增加1,并返回计算后的数值

decr key

减少1,并返回计算后的数值

incrby keyvalue

增加value 个值,并返回计算后的数值

decrby key value

降低value个值,并返回计算后的数值

incrbyfloat key floatnumber

增加浮点数,并返回计算后的数值

3.link 链表结构

链表的特点是元素之间有顺序

lpush key value

从链表的左侧插入元素

示例: lpush character a

rpush key value

从链表的右侧插入元素

示例:rpush ke value

lrange start stop

去链表的一段拿出来瞅瞅

lrange 0 -1 是去除所有 (链表从右向左从-1开始编号)

lpop key

从左边弹出

rpop key

从右边弹出

lrem key count value

链表删除

删除链表中值为value的元素,删除count个。

例子:

lrem halouworld 2 b

lrem halouworld -2 b 从右边删除

ltrim key from to

截取链表,最后key链表只剩下了下标从from到to的这一段了

示例:

ltrim key 0 2

ltrim key 0 -2

lindex key index(元素下标)

取链表中的1个元素

llen key

计算链表元素的个数

linsert key after|before search value

在key存储中寻找search的值,并在search的前|后插入value

rpoplpush source task

从source尾部弹出,插入到task头部

brpop或者blpop key timeout

弹出值,如果没有值,会等待timeout

4.set 集合结构操作

set 的特性主要是去重且无序

sadd key vlaue1 value2 ...

集合的特性,唯一性,无序性,确定性

smembers key

查询集合

srem key value1 value2

删除某个key下的几个元素

spop key

随机弹出一个元素,并且在集合中删除

srandmember key

随机得到一个值,但是不会在集合中删除

sismember key value

查看某个元素是不是集合里的

scard key

查找集合元素总数

smove source dist value

把source中的某个value移动到dist集合中

sinter key1 key2 key3 ...

求几个集合的交集

sunion key1 key2 key3 ...

求集合的并集

sdiff key1 key2

求集合的差集

sinterstore key1 key2 key3...

把后面集合里的j交集存储到key1里

5.order set 有序集合

为集合中的每个元素加个score,即排序依据

zadd score1 value1 score2 value2 ...i

添加元素

zrange key start stop [withscore] limit offset

默认按升序,排序后取出start到stop的元素 start和with是元素下班,当加上withscore时,

表示连带score也取出

zrangebyscore key value min max [withscore] limit offset count

通过排序因子(score)来取出数组,limit 跳过offeset个,一共查询count 。 包含 withscore,后面的参数都是可选参数

zrank key member

通过给定元素查找这个元素的排名(排名从0开始)

zrem key value1 value2。。。。

删除给定元素

zremrangebyscore key mix max

通过score删除元素,(删除某一个范围)

zremrangebyrank key start end

通过排名删除元素

zcard key

查看有序集合中有几个人

zcount key min max

统计分数在某个区间内的集合元素数量

6.hash 哈希结构

hset key field value

在key中设置 field(域)得值为 value(值)

hgetall key

返回key中所有的域和值

hmset key field1 value1 [field2 value2.... ]

一次性设置多个值

hmget key field1 field2 field3...

一次性获取多个值

hdel key field1

删除key中field1的值

hlen key

返回key中元素的数量

hexists key field

查看某个key下的某个域是否存在,返回值 1表示存在,0表示不存在

hget key field

查看某个key下的某个field的值

hincrby key field value

设置field的值为加1

hincrbyfloat key field value

设置field的值为float增长1

hkeys key

查看key中所有的field

hvals key

返回key中所有的value

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180625G0R5MF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券