Redis

redis string类型命令

2023-01-30  本文已影响0人  饱饱抓住了灵感

get

语法:get key

如果键key不存在,那么返回特殊值nil;否则返回键key的值。

例子: get name -- 获取name键的值

set

语法:set key value [ex seconds|px milliseconds|exat timestamp|pxat milliseconds-timestamp|keepttl] [nx|xx] [get]

设置string类型的键值,如果key已经保存了一个值,那么这个操作会直接覆盖原来的值,并且忽略原始类型

参数 说明
key 存储的key名称
value 存储的value数据
ex seconds 设置键key的过期时间,单位时秒
px milliseconds 设置键key的过期时间,单位时毫秒
exat timestamp 设置键过期的指定Unix时间,以秒为单位
pxat milliseconds-timestamp 设置键过期的指定Unix时间,以毫秒为单位
keepttl 获取key的过期时间
nx 只有键key不存在的时候才会设置key的值
xx 只有键key存在的时候才会设置key的值
get 返回 key 存储的值,如果 key 不存在返回空

例子:

set name baobao   -- 设置一个最基本的键值
set name baobao ex 60     -- 设置一个键值,并指定过期时间秒,ttl可以查看过期时间
set name baobao nx        -- 只有键key不存在的时候才会设置key的值
set name baobao xx        -- 只有键key存在的时候才会设置key的值

setnx

语法:setnx key value

设置键值,存在此键则返回0不覆盖,否则正常设置

例子:setnx name xiexie -- 设置name为键,并赋值

setrange

语法:setrange key offset value

偏移量offset>=0开始, 用value参数覆盖键key储存的字符串值。不存在的键key当作空白字符串处理。

例子:

set name baobao   --创建原始键值
setrange name 5 ' bao bao' -- 把原有的 baobao 从第五位之后更改(0下标);最终变为 "zhang bao bao"
setrange name 14 out -- 超出偏移则使用空格 '\x00' 代替一个空格;最终变为 "zhang bao bao\x00out"
setrange address 2 fujian -- 如果设置的键不存在则会新建,但是偏移量会以空格代替;最终变为 "\x00\x00fujian"

strlen

语法:strlen key

获取指定key所储存的字符串值的长度。当key储存的不是字符串类型时,返回错误。

append

语法:append key value

用于为指定的key追加值,成功后返回当前键里面的字符串全部长度(如果追加有空格需要使用 '')

例子: append name 'good good boy' -- 追加有空格的,并且成功后返回当前key的全部长度

getdel

语法:getdel key

先获取到指定的key后,再删除获取的那个key;最终返回被删除的值

getset

语法:getset key value

设置更新key值,设置前先把原有的值返回出来,并设置新的值,如果key不存在时使用getset则返回nil,并设置新值

getrange

语法:getrange key start end

获取指定的范围值,start(从0开始)end(从0开始)

例子:

set name xiexie
getrange name 2 5  -- 获取范围值,最终返回 'exie'
getrange name 3 -1 -- 获取范围值,最终返回 'xie'
注:若使用getrange name 0 -1 (其中-1代表从后往前数)

getex

语法:getex key [ex seconds|px milliseconds|exat timestamp|pxat milliseconds-timestamp|persist]

获取指定的key值,并且获取后可以对当前key设置超时时间或者清除超时时间

参数 说明
ex seconds 设置键key的过期时间,单位时秒
px milliseconds 设置键key的过期时间,单位时毫秒
exat timestamp 设置键过期的指定Unix时间,以秒为单位
pxat milliseconds-timestamp 设置键过期的指定Unix时间,以毫秒为单位
persist 清除超时时间

mset

语法:mset key value [key value ...]

和set命令差不多,但是这个是批量设置,如果设置键存在则覆盖,不存在则添加

例子:mset name baobao age 22 address fujian -- 批量设置name和age和address

mget

语法:mget key [key ...]

批量获取键的值,如果获取的某个不存在则返回(nil),其它正常返回

例子:mget name aaa -- 批量获取name和aaa的值(aaa键不存在则返回nil)

setex

语法:setex key seconds value

将键key的值设置为value ,并将键key的过期时间设置为seconds秒钟,如果key存在则覆盖原有值

例子:setex name 60 xiexie -- 设置key为name,并且设置60秒过期时间

psetex

语法:psetex key milliseconds value

将键key的值设置为value ,并将键key的过期时间设置为milliseconds毫秒,如果key存在则覆盖原有值

例子:psetex name 70000 xiexie -- 设置key为name,并且设置70秒过期时间

msetnx

语法:msetnx key value [key value ...]

当且仅当所有给定键都不存在时,为所有给定键设置值(如果添加的其中键在当前数据库存在则都不成功)
msetnx是一个原子性(atomic)操作,所有给定键要么就全部都被设置,要么就全部都不设置

例子:msetnx name xiexie age 22 -- 设置name和age两个键值

incr

语法:incr key

将key中储存的数字值增一,并返回增加后的值(只能用在整型,字符串啥的会报错)

incrby

语法:incrby key increment

将key中储存的数字值增加指定步长increment,并返回增加后的值(只能用在整型,字符串啥的会报错)

incrbyfloat

语法:incrbyfloat key increment

将key中储存的数字值增加指定步长increment,并返回增加后的值(只能用在浮点型,字符串啥的会报错)

例子: incrbyfloat salary 333.33 -- 对salary添加步长333.33

decr

语法:decr key

将key中储存的数字值减一,并返回减后的值(只能用在整型,字符串啥的会报错)

decrby

语法:decrby key decrement

将key中储存的数字值减指定步长increment,并返回减后的值(只能用在整型,字符串啥的会报错)

上一篇 下一篇

猜你喜欢

热点阅读