您的位置:首页 > 数据库 > Redis

redis基础数据类型详解

2017-05-25 08:08 567 查看

redis类型

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


查看redis命令帮助
help 命令名


String类型

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

set、get和del方法:

设置值:
set name redis


取值:
get name


删除值:
del name


使用setnx (not exist)

表示如果不存在key进行设置,返回1。存在就不需要设置了,返回0

127.0.0.1:6379> setnx name aa
(integer) 0


使用setex (expired)

set color 10 red
设置color的有效期为10秒,10秒返回
nil
(在redis中
nil
表示
null
)

使用setrange 替换字符串

set mail 123456@qq.com
替换字符串
setrange mail 5 abc
(5表示从第几位开始替换,不包含开始位置,后面跟上替换的字符串),如下图:



一次性设置或者获取多个值
mset、mget
方法

mset k1 123 k2 abc k3 ofg


mget k1 k2 k3




一次性获取设置
getset
方法

getset k4 abcd
先返回k4的值然后设置k4的值为
abcd




incr和decr方法

对某个值进行递增和递减。
incr age
decr age


incrby和decrby方法

对某个值指定长度的递增和递减。

incrby age 5
增加5

decrby age 6
减少6

append方法追加字符串

append key value


append name nosql
为key为name的值追加nosql

strlen方法获取key的长度

strleng key
返回该key的value的长度

Hash类型

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

设置和获取Hash方法

通过
hset
设置
Hash
类型的值。
hset user id 1
表示设置
Hash
的值为
user
,里面有
key
id
value
为1。

通过
hget
获取
Hash
类型的值。
hget user id
表示获取
Hash
的值为
user
key
id
的值。

也可以批量设置和获取值。通过
hmset user id 2 name zs age 20 sex man
hmget user id name age sex






Hash类型的其他常用方法

hsetnx:这个和
setnx
类似,表示如果不存在就设置,存在就不设置。

hincrby:集合递增,类似于
incrby


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

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

hdel:删除指定hash中的字段。

hkeys:返回hash中的所有key。

hvales:返回hash中的所有value。

hgetall:返回hash里的所有key和value。



List类型

List
类型是一个链表结构的集合,其主要功能有push、pop、获取元素等。更加具体来说,List类型是一个双链表的结构,我们可以通过相关操作在集合的头部和尾部进行操作,List的可以作为栈,也可以作为队列。

lpush和lrange方法

lpush
从头部加入元素(栈)先进后出,返回集合中元素个数。
lpush list hello
向名为
list
集合中添加
hello


lrange
获取栈的元素,返回集合中的元素。
lrange list 0 -1
获取
list
集合全部元素。



rpush方法

rpush
方法从尾部加入元素,先进先出。
rpush list2 hello
向集合
list2
中添加
hello


lrang
获取集合中的元素。



linsert方法

插入元素。
linsert num before three two




lset方法

将指定下标的元素替换掉。从0开始



lrem方法

删除元素,返回删除元素个数



ltrim方法

保留指定范围内的元素,截取集合



lpop方法

从list的头部删除元素,并返回删除元素



rpop方法

从list的尾部删除元素,并返回删除元素



Set类型

Set集合是String类型的无序集合,Set是通过HashTable实现的,对集合我们可以取交集、并集、差集。

sadd方法

向名称为key的set中添加元素。
sadd set1 abc
也可以批量添加
sadd set1 abc bdf


set集合不允许添加重复元素。



smembers方法

查看set集合元素。



srem方法

删除set集合元素



spop方法

随机返回删除的member



sdiff方法

返回两个集合的不同元素,哪个集合在前面就以哪个集合为标准。



sdiffstore方法

将返回的不同元素存储到另一个集合里。



sinter方法

两个集合取交集。



sinterstore方法

返回交集结果,存储到另一个集合中



sunion方法

取并集。



sunionstore方法

取并集,并存储到另一个集合中



smove方法

从一个set集合移动到另一个set集合,相当于剪切复制。



scard方法

返回集合的元素个数,
scard 集合名


sismember方法

判断某元素是否为集合中的元素,返回1代表是集合中的元素,0代表不是



srandmember方法

随机返回一个元素



zset集合类型

set集合的升级版,集合是有序的。

zadd方法

向有序集合中添加一个元素,该元素如果存在,则更新顺序。在重复插入的时候,会根据顺序属性更新。



zrange方法

查看zset集合数据。



zrem方法

删除名称为key的zset中的元素member



zincrby方法

以指定值去自增或自减,用法和incrby类似

zrangebyscore方法

找到指定区间范围的数据进行返回。



zremrangebyrank方法

删除索引范围的member



zremrangebyscore方法

删除指定序号,通过分数范围删除,包含头、包含尾



zrank方法

返回排序序号,从0开始



zrevrank方法

返回排序索引,从大到小的顺序,从0开始



zrangebyscore 方法

找到指定区间的数据并返回



通过上图我们可以看出
zrange
zrangebyscore
方法的区别是,一个通过索引范围查找,一个通过分数范围查找

zcard方法

返回集合中所有元素的个数



zcount方法

返回集合中score在给定区间的数量

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: