Heim  >  Artikel  >  Datenbank  >  Redis数据类型及操作

Redis数据类型及操作

WBOY
WBOYOriginal
2016-06-07 17:12:451297Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn