当前位置:Gxlcms > mysql > Redis数据类型及操作

Redis数据类型及操作

时间:2021-07-01 10:21:17 帮助过:37人阅读

Redis数据类型及操作,redis 的 string 可以包含任何数据,比如 jpg 图片或者序列化的对象。从内部实现来看其实 string 可以看作 b

strings 类型

string 类型是二进制安全的。

redis 的 string 可以包含任何数据,比如 jpg 图片或者序列化的对象。从内部实现来看其实 string 可以看作 byte 数组,最大上限是 1G 字节
struct sdshdr {
long len;//buf的长度
long free;//buf剩余可用字节数
char buf[];//实际的字符串内容
};


1:set

设置 key 对应的value(string类型)

> set name larry

ok

2:setnx

即set not exist,如果 key 已经存在,返回 0

> set name larry

ok

>setnx name larry

(integer) 0

3:setex
存储键值对,并设置有效期

>setex name 10 larry
ok

>get name

"larry"

10秒钟后...

>get name

(nil)

4:setrange

有就替换,没有就用\x00代替缺少的字符来替换,数字代表开始替换的下标
> get name
"larry"
>setrange name 0 lv

(integer) 5
>get name
"lvrry"

>setrange name 10 lv

"lvrry\x00\x00\x00\x00\x00lv"

5:mset

每次设置多个key值

>mset key1 value1 key2 value2

ok

6:msetnx

一次设置多个 key 的值,具有原子性,同时成功或失败,失败返回0,所有操作回滚

7:get

根据key获取值,不存在返回(nil)

>get asdasds

(nil)

8:getset

获取旧值并设置一个新值,不存在返回(nil)

>get name

"larry"

>getset name lv

"larry"

>get name

"lv"

>getset dsadasd lv

(nil)

9:getrange

根据指定的下标获取值,负数表示从右边开始

>getrange 0 1 name

"la"

10:mget

返回多个值,,不存在返回(nil)

>get name sdadasd

1)"larry"

2)(nil)

11:incr

加加操作,如果字符不是int型会报错(error) ERR value is not an integer or out of range

> set age 20
OK
incr age
(integer) 21

12:incrby

加操作

> get age
"21"
> incrby age 5
(integer) 26

13:decr

减减操作

14:decrby

减操作

15:append

追加操作,返回字符串长度

>append name lv

(integer) 15

>get name

"larrylv"

16:strlen

返回value的长度

linux

人气教程排行