专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Redis之key与String

redis中key的操作

通用操作

查询key

操作符 说明
keys * 查询所有key
keys s* 模糊查询s这个key是否存在
keys demo 精确查询demo这个key是否存在
randomkey 随机返回某一个key
type demo 查询demo这个key的类型
exists demo 查询demo这个key是否存在,存在即返回 1 ,不存在返回 0.

获取key

操作符 描述
get demo 获取demo这个key的值,如果这个不存在则返回nil,也就是空。

注意: get 只能获取string类型的key ,在获取前可以先使用 type key

删除key

操作符 描述
del demo 删除demo这个key,删除成功返回 1,否则返回 0.
del demo1 demo2 删除demo1 demo2 这两个key,返回:删除多少个成功就返回成功删除的个数。

重命名key

操作符 描述
rename demo new_demo 把demo这个key重命名为new_demo
renamex demo new_demo 把demo这个key重命名为new_demo,返回:改名成功返回 1,否则返回 0,如果new_demo这个key不存在,则发生改名。

###通配符

通配符 描述
* 通配任意多个字符
? 通配单个字符
[] 通配中括号内的某个字符,如:[adb]

key的生命周期

-1 代表永久有效.

注意: 对于不存在的key或已过期的key / 不过期的key都返回 -1.redis2.8中,对于不存在的key返回-2

操作符 描述
ttl demo 查询demo这个key的生命周期,返回的是秒数
expire demo 10 设置demo这个key为10秒内有效.
persist demo 设置demo这个key为永久有效.
pttl demo 查询demo这个key的生命周期,返回的是毫秒.

ttl : 查询key的生命周期

expire : 设置key的生命周期以秒为单位.

persist : 设置key为永久有效.

库级操作

redis 的数据库默认是16个,从0~15

操作符 描述
move goods 2 把goods这个key移动到2号数据库.当前的数据库就没有了这个key.
select 2 进入2号数据库
flushdb 清空当前库中的所有key

String类型的操作

一次性创建一个字符串

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

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

xx 表示 key 存在时,执行操作

如下:

操作符 描述
set demo value ex 100 创建demo这个key的生命周期为100秒
set demo value px 9000 创建demo这个key的生命周期为9000毫秒
set demo value nx 不存在demo这个key时就创建。
set dmeo value xx 存在demo这个key时就创建

如果ex,px同时写,以后面的有效期为准。

一次性创建多个字符串

使用的是 mset key1 value1 key2 value2 ….

如下用法:

mset demo demo_value demo1 demo1_value

获取多个字符串的key

mget demo demo1

偏移字符串

setrange key offset value

offset:从什么位置开偏移,

value:偏移后的值。

如下:

set hello world #创建key

setrange hello 2 xx # 变成了 worxd

setrange hello 2 ???? # 变成了 wor????

注意:如果超过字符串的长度,redis就会使用\x00来替换。

如下:

set world hello #这个key的长度只有5个

setrange world 6 ! # 显示:hello\x00!

尾部追加字符串

set demo value

append demo 2222 # value2222

获取字符串范围的值

注意:对于字符串的下标,左数从0开始,右数从-1开始。

getrange key start stop

作用:是获取字符串中[start,stop]范围的值,包括自身下标。

如下:

set demo value

getrange demo 2 -3 #返回的是 lu

注意:

1、 start>=字符串length ,则返回空字符串。
2、 stop>=字符串length,则截取到字符串结尾。
3、 如果start所处位置在stop右边,返回空字符串。

getset key newvalue

作用:获取并返回旧值,设置新值。

增一减一操作

set age 10

自增一:incr age

get age 这次就变成了11

指定增加多少:incrby age 5

指定增加浮点数:incrbyfloat age 0.5

自减一:decr age

指定减少多少:decrby age 5

get age :这次就变成了10.

注意:不能自减太大了,比如age本身只有10,不能使用 decrby age 11

浮点数与整数之间不能进行相加相减

这种一般使用 秒杀商品。比如库存,让你来进行抢购资格,只有你抢到这个资格才能买这个商品。

从位的角度来把字母变小写

setbit key offset value

设置offset对应二进制位上的值

注意:

1、如果offset过大,则会在中间填充0

2、offset最大大到多少,2^32-1,即可推出最大的字符串为512M.

set char B

setbit char 2 1; //char的值就会变为b

get char

setbit char 2 0;//char的值就会变为B

bitop operation destkey key1 key1..

对key1,key2..keyN作operation并将结果保存到destkey上。operation可以是 AND ,OR,NOT ,XOR.

setbit lower 2 1

get lower # " "

set char Q

bitop or char char lower

get char # "q"

注意:对于NOT操作,key不能多个。

文章永久链接:https://tech.souyunku.com/46920

未经允许不得转载:搜云库技术团队 » Redis之key与String

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们