首页 > 代码库 > Redis中的数据类型

Redis中的数据类型

Redis一共分为五种基本数据类型:String,Hash,List,Set,ZSet

1.String类型

String类型是包含很多种类型的特殊类型,并且是二进制安全的,比如序列化的对象进行存储,比如一张图片进行二进制存储,比如一个简单的字符串,数值等等~

set和get方法:

设置值:set key value  取值:get key(说明 设置key多次会覆盖)  删除值:del key

使用setnx(not exist)

name如果不存在就进行设置,如果存在就不进行设置了,返回0

127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> setnx name lisi
(integer) 0
127.0.0.1:6379> 

使用setex(expired)

setex color 10 red设置color的有效期为10秒,10秒后返回nil(在Redis中nil表示空)

使用setrange替换字符串:

set email 1048158229@qq.com

setrange email 10 ww (10表示从第几位开始替换,后面跟上替换的字符串,从0开始)

127.0.0.1:6379> set email 1048158229@qq.com
OK
127.0.0.1:6379> setrange email 10 ww
(integer) 17
127.0.0.1:6379> get email
"1048158229wwq.com"
127.0.0.1:6379> 

使用一次性设置多个和获取多个值得mset,mget方法

mset key1 value1 key2 value2 key3 value3

对应的mget key1 key2 key3

127.0.0.1:6379> mset name zhangsan age 20 sex 0
OK
127.0.0.1:6379> mget name age sex
1) "zhangsan"
2) "20"
3) "0"
127.0.0.1:6379> 

一次性设置和取值的getset

127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> getset name lisi
"zhangsan"
127.0.0.1:6379> 

返回旧值并设置新值

incr和decr方法:对某一个值进行递增和递减(incr/decr key)

incrby和decrby方法:对某个值进行指定长度的递增和递减(incrby/decrby key 步长)

append[name]方法:字符串追加方法(append key ‘str‘)

strlen[name]方法:获取字符串的长度(strlen key)

2.Hash类型

Hash类型是String类型的field和value的映射表,或者说一个String集合。它特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。

形如:hset myhash key value(含义是hset是hash集合,myhash是集合名字,key是字段名,value是其值),使用hget myhash key获取内容,也可以存储多个值。

hmset可以进行批量存储多个键值对,hmset myhash key1 value1 key2 value2,也可以使用hmget进行批量获取多个键值对。

同样也有hsetnx,和setnx大同小异。

hincrby和hdecrby集合递增和递减

hexists是否存在key,如果存在就返回,不存在就返回0

hlen返回hash集合里的所有的键数值

hdel删除指定hash的key

hkeys返回hash里的所有字段

hvals返回hash里的所有value

hgetall返回hash里所有的key和value

3.List类型

List类型是一个链表结构的集合,其主要功能是push,pop,获取元素等。更详细的说,List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或尾部添加删除元素,list的设计非常简单精巧,既可以作为栈,又可以作为队列,满足绝大多数需求。

lpush方法:从头部加入元素(栈),先进后出

形如:

127.0.0.1:6379> lpush list1 ‘hello‘
(integer) 1
127.0.0.1:6379> lpush list1 ‘world‘
(integer) 2
127.0.0.1:6379> lpush list1 ‘welcome‘
(integer) 3
127.0.0.1:6379> lrange list1 0 -1
1) "welcome"
2) "world"
3) "hello"
127.0.0.1:6379> 

(0 -1表示从头取到末尾)

rpush方法:从尾部加入元素(队列),先进先出

形如:

127.0.0.1:6379> rpush list2 ‘hello‘
(integer) 1
127.0.0.1:6379> rpush list2 ‘world‘
(integer) 2
127.0.0.1:6379> rpush list2 ‘welcome‘
(integer) 3
127.0.0.1:6379> lrange list2 0 -1
1) "hello"
2) "world"
3) "welcome"
127.0.0.1:6379> 

 

Redis中的数据类型