Redis五种数据类型

Redis有五种数据类型:

String(字符串)、List(列表)、Hash(散列)、Set(集合)、sortedSet(有序集合)

先说一下key 这个命令的用法:

keys *

查看当前库的所有键

exists <key>

判断某个键是否存在

type <key>

查看键的类型

del <key>

删除某个键

expire <key><seconds>

为键值设置过期时间,单位秒

ttl <key>

查看还有多久过期,-1表示永不过期,-2表示已过期

dbsize

查看当前数据库中key的数量

flushdb

清空当前库

flushall

通杀全部库

 

1、 第一个数据类型(String)非常的常见:

 字符串类型的value值,可以占用512M的空间,所以可以存储很多的数据。

get <key>

查询对应键值

set <key><value>

添加键值对

append <key><value>

将给定的<value>追加到原值的末尾

strlen <key>

获取值的长度

setnx <key><value>

只有在key 不存在时设置key的值,SET if Not eXists

incr <key>

将key中存储的数字值增1只能对数字值操作,如果为空,新增值为1

decr <key>

将key中存储的数字值减1只能对数字之操作,如果为空,新增值为-1

incrby /decrby <key> 步长

将key中存储的数字值增减,自定义步长

mset <key1><value1><key2><value2>

同时设置一个或多个key-value对

mget <key1><key2><key3>

同时获取一个或多个value

msetnx <key1><value1><key2><value2>

同时设置一个或多个key-value对,当且仅当所有给定的key都不存在

getrange <key> <起始位置> <结束位置>

获得值的范围,类似java中的substring

setrange <key> <起始位置> <value>

用<value>覆盖<key>所存储的字符串值,从<起始位置>开始

setex <key> <过期时间> <value>

设置键值的同时,设置过去时间,单位秒

getset <key><value>

以新换旧,设置了新值的同时获取旧值

 

-- 查看当前库的所有键
keys *
-- exists <key>	判断某个键是否存在 1 存在  0 不存在
exists class
-- type <key>	查看键的类型
type class
-- del <key>	删除某个键
del age
-- expire <key><seconds>	为键值设置过期时间,单位秒
set age 18
expire age 100
-- ttl <key>	查看还有多久过期,-1表示永不过期,-2表示已过期
ttl age
-- dbsize	查看当前数据库中key的数量
dbsize
-- flushdb	 清空当前库
-- flushall	 通杀全部库


-- 添加键值对
set class donghu
-- 查询对应键值
get class
-- 获取值的长度
strlen class
-- 只有在key 不存在时设置key的值,SET if Not exists
setnx object bigdata

incr age
decr age
set age 8
incrby age 10
decrby age 10
mset name lisi age 22
mget name age

 2、第二个数据类型:List(非常常见的)

 

-- 第二个数据类型:List
lpush list01  a b c d e f
lrange list01 0 -1
lpush list02 1 2 3 4 5
lrange list02 0 -1
lpop list01
rpop list01
-- 删除2个5
lrem list02 2 5
lrange list02 0 -1

 3、第三种数据类型:Set

Set的特点是无序不重复的

sadd <key><value1><value2> ....

将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。

smembers <key>

取出该集合的所有值。

sismember <key><value>

判断集合<key>是否为含有该<value>值,有返回1,没有返回0

scard <key>

返回该集合的元素个数。

srem <key><value1><value2> ....

删除集合中的某个元素。

spop <key>

随机从该集合中吐出一个值。

srandmember <key><n>

随机从该集合中取出n个值。不会从集合中删除

sinter <key1><key2>

返回两个集合的交集元素。

sunion <key1><key2>

返回两个集合的并集元素。

sdiff <key1><key2>

返回两个集合的差集元素。

-- 第三种数据类型:Set
sadd set01  a b c d e f
smembers set01
sadd set02 1 2 3 4 5
smembers set02
sadd set03 c d f g f

-- 获取set01 和 set03 的差集
sdiff set01 set03
-- 获取set01 和 set03 的交集
sinter set01 set03
-- 获取set01 和 set03 的并集
sunion set01 set03

 

4、第四种数据类型Hash (类似于之前的map)

Redis hash 是一个键值对集合

Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

hset <key><field><value>

<key>集合中的 <field>键赋值<value>

hget <key1><field>

从<key1>集合<field> 取出 value

hmset <key1><field1><value1><field2><value2>...

批量设置hash的值

hexists key <field>

查看哈希表 key 中,给定域 field 是否存在。

hkeys <key>

列出该hash集合的所有field

hvals <key>

列出该hash集合的所有value

hincrby <key><field><increment>

为哈希表 key 中的域 field 的值加上增量 increment

hsetnx <key><field><value>

将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在

-- 第四种数据类型Hash (类似于之前的map)
hset donghu name zhangsan01
hget donghu name
hset donghu zhangsan 20
hset donghu lisi 30
keys *
hvals donghu
hgetall donghu
hdel donghu name
hgetall donghu
hkeys donghu

5、第五种数据类型:zset (Sorted Set) 有序的Set集合

zrange <key><start><stop> [WITHSCORES]

返回有序集 key 中,下标在<start><stop>之间的元素带WITHSCORES,可以让分数一起和值返回到结果集。

zrangebyscore key min max withscores

返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。

zrevrangebyscore key max min withscores

同上,改为从大到小排列。

zincrby <key><increment><value>

为元素的score加上增量

zrem <key><value>

删除该集合下,指定值的元素

zadd <key><score1><value1><score2><value2>...

将一个或多个 member 元素及其 score 值加入到有序集 key 当中

zcount <key><min><max>

统计该集合,分数区间内的元素个数

zrank <key><value>

返回该值在集合中的排名,从0开始。

 

-- 第五种数据类型:zset  (Sorted Set)  有序集合
-- 这不是10个元素,而是5个元素,前面的元素使序号,将来会根据序号进行排序,正序排序
zadd zset01 2 a 3 b 1 c 6 d 4 f
-- 查看元素
zrange zset01 0 -1
-- 倒着输出元素
zrevrange zset01 0 -1
-- 正着输出元素和自己对应的序号
zrange zset01 0 -1 withscores

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值