欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Redis string类型常用操作

程序员文章站 2022-11-04 09:03:45
Redis 有 string、list、set、zset、hash数据类型。string类型是最基础的,其他类型都是在string类型上去建立的,所以了解熟悉string类型的常用操作对于学习redis非常必要。 APPEND:向键的值后面追加字符串,并且返回追加后的值长度 SETBIT:设置或清除 ......
 

redis 有 string、list、set、zset、hash数据类型。string类型是最基础的,其他类型都是在string类型上去建立的,所以了解熟悉string类型的常用操作对于学习redis非常必要。

append:向键的值后面追加字符串,并且返回追加后的值长度

127.0.0.1:6379[7]> get hello
"world"
127.0.0.1:6379[7]> append hello wonderful
(integer) 14
127.0.0.1:6379[7]> get hello
"worldwonderful"

setbit:设置或清除指定偏移位的值(比特位从左往右算)

getbit:获取指定位的比特值

bitcount:获取指定字节范围中有多少位为 1

127.0.0.1:6379[7]> set andy 'a'
ok
127.0.0.1:6379[7]> get andy
"a"
127.0.0.1:6379[7]> setbit andy 6 1
(integer) 0
127.0.0.1:6379[7]> setbit andy 7 0
(integer) 1
127.0.0.1:6379[7]> get andy
"b"
127.0.0.1:6379[7]> getbit andy 7
(integer) 0
127.0.0.1:6379[7]> bitcount andy 0 3
(integer) 3

incr:值递增

incrby:按照指定值递增

incrbyfloat:指定浮点数递增

decr:值递减

decrby:按照指定值递减

127.0.0.1:6379[7]> incrby counter 3
(integer) 9
127.0.0.1:6379[7]> decrby counter 2
(integer) 7
127.0.0.1:6379[7]> incrbyfloat counter 1.6
"8.6"
# 如果值为非int型则会报错
127.0.0.1:6379[7]> incr key3
(error) err value is not an integer or out of range

get:返回键的值

getrange:获取值指定范围

getset:设置值并且返回原来的值

127.0.0.1:6379[7]> getset key3 test_key3
"value3"
127.0.0.1:6379[7]> get key3
"test_key3"
127.0.0.1:6379[7]> getrange key3 0 3
"test"

mget:批量获取值,如果对应键不存在会使用 nil 代替,按指定顺序返回

mset:批量设置键值对,相比 set 节省了网络时间,但如果一次性设置太多可能会导致阻塞

127.0.0.1:6379[7]> mset a 1 b 2 c 3 d 4
ok
127.0.0.1:6379[7]> mget a b c d
1) "1"
2) "2"
3) "3"
4) "4"

set:设置键值对

语法:set key value [expiration ex seconds|px milliseconds] [nx|xx]
  expiration:设置过期时间,ex 以秒为单位, px 以毫秒为单位
  nx:键必须不存在才能设置成功
  xx:键必须存在才能设置成功

setnx:同等于 set 指定 nx 参数

127.0.0.1:6379[7]> get test1
(nil)
127.0.0.1:6379[7]> get redis
"best"
127.0.0.1:6379[7]> setnx redis "good"
(integer) 0
127.0.0.1:6379[7]> setnx test1 "good"
(integer) 1

setex:设置键值对,并且指定过期时间,同等于 set 指定 ex 参数。

127.0.0.1:6379[7]> setex test1 10 "test1"
ok
127.0.0.1:6379[7]> get test1
"test1"
127.0.0.1:6379[7]> get test1
(nil)

msetnx:等同于 mset 和 setnx 结合

psetex:等同于 set 设置 px 参数

setrange:修改值指定范围的内容

127.0.0.1:6379[7]> set redis pest
ok
127.0.0.1:6379[7]> setrange redis 0 b
(integer) 4
127.0.0.1:6379[7]> get redis
"best"

strlen:返回值的长度,以字节为单位,注意每个中文字符占3个字节

参考文档:《redis开发与运维》、redis官方文档

参考网络文件:理解setbit中的bit;

理解setbit、bitcount等命令推荐博客: