redis基本类型操作之string


前言

redis我们日常工作经常使用,可能很多人,都是拿来做缓存,其实它还有很多丰富的功能。本文主要是介绍一下redis中string字符串的使用方法,希望对大家有用。

set

set key value [EX seconds|PX milliseconds|EXAT timestamp|PXAT milliseconds-timestamp|KEEPTTL] [NX|XX] [GET]
  • 常规用法,就是set k v
  • set k v ex 20 就是设置超时时间20秒,可用ttl k 查看剩余存活时间,单位秒
  • set k v px 20 就是设置超时时间为20毫秒,可用ttl 查看剩余秒数,也可用pttl查看剩余毫秒数
  • set k v exat 1629095957 就是设置时间到某个时间戳,例如2021-08-16 14:39:17
  • set k v pxat 1629096183000 就是设置过期时间到某个毫秒的时间戳,例如:2021-08-16 14:43:03
  • set k v keepttl 是指保存k键原来的存活时间;对已存在的k执行set命令,如果不指定存活时间,会被设置为-1,也就是永久存在;可以通过设置keepttl,来保留原来的存活时间;如图:

image.png

  • set k v nx 当键k不存在时,设置键;设置成功返回ok,不成功时返回nil;于setnx等价
  • set k v xx 当键k存在时,设置键;于nx正好相反
  • set k v get 返回k之前的值,之前不存在时,返回nil,但是不会设置失败,如图:

image.png

get

get key
  • get k 获取键k对应的值,不存在时,返回nil

getex

getex key [EX seconds|PX milliseconds|EXAT timestamp|PXAT milliseconds-timestamp|PERSIST]
  • 用于获取k的值,并设置或者移除过期时间,参数类似于set
  • ex,px,exat,pxat都类似于set的参数定义
  • persist移除k的过期时间

image.png

getrange

getrange key start end
  • 截取字符串,其中start,end都是包括的,因此注意0 1 是获取前2个字符;如图:

image.png

setrange

setrange key offset value
  • setrange k 2 abc 从偏移量2开始(包括2),覆盖k的值;如图:

image.png

getset

getset key value
  • getset k v 给k设置值,并返回k原来的值;k不存在时,返回nil;类似于set k v get,同样不会由于返回nil导致set失败

mset

mset key value [key value ...]
  • mset k v k1 v1 k2 v2 批量设置键值,但是就没法像set那样设置过期时间之类的功能了

mget

mget key [key ...]
  • mget k k1 批量获取k的值,不存在的键会返回nil,如图:

image.png

setex

 setex key seconds value
  • setex k 20 1 设置一个键为k,value为1,存活期为20秒的键值对;类似于set k 1 ex 20
  • 如果设置毫秒级别的过期时间,可用psetex,类似 set k v px 20000

psetex

psetex key milliseconds value
  • 类似setex,只是设置的时间单位是毫秒

setnx

setnx key value
  • setnx k 2 当k不存在时设置值为2,设置成功返回1,k存在时返回0;类似set k 2 nx

msetnx

msetnx key value [key value ...]
  • msetex k 1 j 2 v 3 批量设置键值对,当所有key都不存在时返回1,否则返回0

strlen

strlen key
  • strlen k 返回键k存储的值的长度,不存在的k返回0

incr

incr key
  • incr k 对k的值加1,并返回加1后的结果;如果k的值是字符串,无法加1,则提示错误,如图:

image.png

incrby

incrby key increment
  • incrby k 2 ,于incr类似,只不过一次加2,并返回加2后的结果

incrbyfloat

incrbyfloat key increment
  • incrbyfloat k 0.1 对k的值加0.1 如图:

image.png

decr

decr key
  • decr k 对k的值减1

decrby

decrby key decrement
  • decrby k 2 对k的值减2,类似incrby

append

append key value
  • append k 23 将23追加到k对应的值后,不存在的k会报错,如图:

image.png

getdel

getdel key
  • getdel k 返回k原来的值,并将k删掉,如图:

image.png

其它

其余还有一些位的操作,bitmap时再介绍

总结

以上就是今天要讲的内容,有兴趣可以转载,但是请注明来源:https://blog.csdn.net/sinat_25446309/article/details/119736536


版权声明:本文为sinat_25446309原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。