Redis常用指令(不定期更新)

查询常用

切换redis数据库

语法:
SELECT 数据库索引

切换索引1库

SELECT 1

默认使用索引0库

查询指定key的类型

语法:
TYPE key值

查询key为【TEST】的set类型值数量

TYPE TEST

返回值列表:

类型描述
string字符串类型,是Redis中最基本的数据类型。
list列表类型,可以存储一个有序的字符串序列。
set集合类型,可以存储一个无序的字符串集合。
zset (sorted set)有序集合类型,每个成员关联一个分数(score),成员按分数排序。
hash哈希类型,类似于map或字典,能够存储键值对。
stream流数据类型,主要用于存储日志或事件流数据。
none表示键不存在。

查询指定key的set类型值数量

语法:
SCARD key值

查询key为【TEST】的set类型值数量

SCARD TEST

查询指定key的set类型所有值

语法:
SMEMBERS key值

查询key为【TEST】的set类型所有值

SMEMBERS TEST

查询指定key的set类型是否存在某值

语法:
SISMEMBER key值

查询key为【TEST】的set类型是否存在某值

SISMEMBER TEST

如果存在,返回值为 ,不存在返回0。

查询指定key的【单个】hash类型值

语法:
HGET key值 hash-key值

查询key为【TEST】的hash-key为【lala】的值

HGET TEST lala

查询指定key的【多个】hash类型值

语法:
HMGET key值 hash-key值 hash-key值

查询key为【TEST】的hash-key为【lala】、【haha】的值

HMGET TEST lala haha

查询指定key的string类型值

语法:
GET key值

查询key为【TEST】的值

get TEST

查询指定key的list类型值

语法:
LRANGE key值 list开始索引 list结束索引

查询key为【TEST】的list值列表

LRANGE TEST 0 1000

如果结束索引为 -1 ,那就会展示所有元素。

查询指定key的list元素数量

语法:
LLEN key值

查询key为【TEST】的list值列表

LLEN TEST

查询指定前缀key的数量

语法:
EVAL “return #redis.call(‘keys’,‘TEST前缀*’)” 0

查询【TEST前缀】的key数量

EVAL "return #redis.call('keys','TEST:*')" 0

键事件操作

具体场景描述及使用见文章:【Redis键值变更通知机制的配置及使用】

键通知配置主要是为了监听redis键的各种状态:过期、删除等命令,如果有这种业务需求,就需要通过以下配置开启键通知配置。

查看键空间事件

# 查看已开启的键事件
config get notify-keyspace-events

开启键空间通知

临时修改

注意:redis重启配置会还原

# 打开键过期的事件通知
例:config set notify-keyspace-events "Ex"

永久修改

redis.conf配置文件新增如下配置:

notify-keyspace-events Ex

bitmap 使用

指定偏移量位值

语法:setbit key offset value
设置或清除指定偏移量上的位(bit)。offset 是从0开始的位索引,value 可以为 0 或 1

SETBIT bits-1 0 1        
SETBIT bits-1 3 1
# bits-1 = 1001
SETBIT bits-2 0 1        
SETBIT bits-2 1 1
SETBIT bits-2 3 1
# bits-2 = 1011

获取指定偏移量位值

语法:getbit key offset
返回指定偏移量上的位值

BITOP AND and-result bits-1 bits-2
GETBIT bits-1 3      # and-result = 1001
(integer) 1
GETBIT bits-1 1
(integer) 0

将多个key进行位运算

语法:bitop operation destkey key [key...]
对一个或多个保存二进制位的字符串key进行位元操作,并将结果保存到destksy上
operation可以是AND、OR、NOT、XOR这四种操作中的任意一种:

  1. bitop and destkey key [key…]对一个或者多个key求逻辑并,并将结果保存到destkey
  2. bitop or destkey key [key…]对一个或者多个key求逻辑或,并将结果保存到destkey
  3. bitop xor destkey key [key…]对一个或者多个key求逻辑异或,并将结果保存到destkey
  4. bitop not destkey key [key…]对给定key求逻辑菲,并将结果保存到destkey
SETBIT bits-1 0 1        
SETBIT bits-1 3 1
# bits-1 = 1001
SETBIT bits-2 0 1        
SETBIT bits-2 1 1
SETBIT bits-2 3 1
# bits-2 = 1011

# 对bits-1、bits-2两个二进制数进行与运算,并将结果存储到and-result
BITOP AND and-result bits-1 bits-2
# and-result = 1001

# 获取and-result某位的二进制数
GETBIT and-result 0      
(integer) 1
GETBIT and-result 1
(integer) 0
GETBIT and-result 2
(integer) 0
GETBIT and-result 3
(integer) 1

查询指定位索引范围key中某位值首次出现的索引

语法:bitpos key bit [start] [end]

setbit m 7 1
setbit m 15 1
setbit m 23 1
# m = 00000001 00000001 00000001    3字节24位

# 获取m 索引1~1字节(8~15位)中位值为0首次出现的索引
bitpos m 0 1 1
# 返回8

# 获取m 索引0~1字节(0~15位)中位值为0首次出现的索引
bitpos m 0 0 1
# 返回0

# 获取m 索引2~2字节(16~23位)中位值为0首次出现的索引
bitpos m 0 2 2
# 返回16

# 获取m 索引2~2字节(16~23位)中位值为1首次出现的索引
bitpos m 1 2 2
# 返回23

# 获取m 索引1~2字节(8~23位)中位值为1首次出现的索引
bitpos m 1 1 2
# 返回15

# 获取m 索引5~5字节(32~39位)中位值为1首次出现的索引
bitpos m 0 5 5
# 返回-1

注意:
1. 语法中的start、end参数单位是字节,1字节=8位,所以,0就代表索引0~7位,1就代表索引8~15位,这个大家要注意。
2 如果返回的索引值为 -1 意为范围内没有出现过该位值。
3. 添加start、end参数后返回的索引值是位在 key 中的索引值。

查询指定位索引范围key中位值为1的数量

语法:bitcount key bit [start] [end]

setbit m 7 1
setbit m 15 1
setbit m 23 1
# m = 00000001 00000001 00000001    3字节24位

# 获取m 索引0~1字节(0~15位)中位值为1的数量
bitcount m 0 1
# 返回2

# 获取m 索引1~1字节(8~15位)中位值为1的数量
bitcount m 1 1
# 返回1

# 获取m 索引1~3字节(8~31位)中位值为1的数量
bitcount m 1 3
# 返回2

# 获取m 索引1~2字节(8~23位)中位值为1的数量
bitcount m 1 2
# 返回2

# 获取m 索引2~2字节(16~23位)中位值为1的数量
bitcount m 2 2
# 返回1

注意:语法中的start、end参数单位是字节,1字节=8位,所以,0就代表索引0~7位,1就代表索引8~15位,这个大家要注意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值