基础篇:二、Redis中的数据类型

要知道任何数据类型都是根据需求逐渐发展的,目前Redis支持的数据类型有5种:

string、hash、list、set、sorted_set

而且在Redis中数据都是以key-value的形式存储的,key规定只能是string类型的,所以我们所讨论的数据量类型默认是对value来说的。
在这里插入图片描述

在这里插入图片描述

1、string类型

基本操作

存储内容:字符串,json数据,或者数字。

当存储数据时,它可以进行加减运算,但是它仍然是个字符串。

在这里插入图片描述

#对于数据的操作,最基本的就是三个方面:存、取、删除。
set key value						#存
mset key value [key value ...]		#一次存多个

在这里插入图片描述

get key						#取
mget key [key ...]			#一次取多个

在这里插入图片描述

del key [key ...]			#删除、可以同时删除多个

在这里插入图片描述

strlen key						#获取字符串长度
append key value				#追加字符(若字符串不存在,则相当于新建追加的字符)

在这里插入图片描述

扩展操作

1、实现数值增减:

incr key						#自增1

incrby key increment			#自增指定的值(increment)

incrbyfloat key increment		#自增指定的小数值(increment)

decr key						#自减1

decrby key decrement			#自减指定的值(increment)

2、设置具有时效性的数据:

setex key seconds value				#数据有效期为seconds秒

psetex key milliseconds value		#数据有效期为milliseconds秒

2、hash类型

Hash类型就像在Redis里面划分出来一个小Redis结构一样。

注意hash中的value值只能存放string类型。(没有嵌套)

在这里插入图片描述

基本操作

hset key field value						#添加单个数据
hmset key field value [field value ...]		#添加多个数据

hget key field					#获取单个数据
hmget key field [field ...]		#获取多个数据
hgetall key						#获取全部数据

hdel key field [field ...]		#删除数据

hlen key						#返回Hash存放数据数量

hexists key field				#判断指定field是否存在

扩展操作

hkeys key		#获取指定hash的所有field

hvals key		#获取指定hash的所有value

hincrby key field increment			#增加指定整型(increment)数值

hincrbyfloat key field increment	#增加指定浮点型(increment)数值

3、list类型

底层用双向链表实现。(实现类似下面的双向管道)

在这里插入图片描述

基本操作

对于list的命令,一定要注意考虑数据进出位置和顺序。

lpush key value [value ...]			#左侧压入数据
rpush key value [value ...]			#右侧压入数据

lrange key start stop				#查询指定下标范围(0,-1是全部数据)的数据
lindex key index					#查询指定下标的数据
llen key							#查询共有多少数据

lpop key							#左侧弹出数据
rpop key							#右侧弹出数据

在这里插入图片描述

在这里插入图片描述

扩展操作

blpop key [key ...] timeout		#在规定时间timeout内左侧弹出数据,若无法完成阻塞至时间耗尽
brpop key [key ...] timeout		#在规定时间timeout内右侧弹出数据,若无法完成阻塞至时间耗尽

lrem key count value		#删除list中指定数量(从左侧开始数)的指定元素。

假设mylsit不存在,现在执行左侧弹出规定10秒内执行。

在这里插入图片描述

可以看到,经过10.02s获取到空值(nil代表空值)。前10s都处于阻塞状态。


lrem指令演示:

在这里插入图片描述

4、set类型

set底层是通过hash来实现的,只不过为了更高的查询效率,它采用key存放数据,value为空。

set中的数据用member来表示。

在这里插入图片描述

基本命令

sadd key member [member ...]	#新增数据

smembers key					#查询所有数据

srem key member [member ...]	#删除指定数据

在这里插入图片描述

扩展命令

srandmember key [count]		#随机获取一个或者count个数据

spop key [count]			#随机获取并且移除一个或者count个数据

在这里插入图片描述


set作为集合,根据其需求提供逻辑运算。

在这里插入图片描述

sinter key [key ...]		#求交集
sunion key [key ...]		#求并集
sdiff key [key ...]			#求差集,注意前后顺序。

sinterstore destination key [key ...]	#求交集,并将结果存放在destination(指定集合)中。
sunionstore destination key [key ...]	#求并集,并将结果存放在destination(指定集合)中。
sdiffstore destination key [key ...]	#求差集,并将结果存放在destination(指定集合)中。

smove source destination member		#将指定数据从source集合移动到destination集合中

5、sorted_set类型

sorted_set(有序集合)是在set的基础上加上一个字段score,根据score的值实现排序的。

在这里插入图片描述

基础操作

zadd key score member [score member ...]	#添加数据

zrange key start stop [WITHSCORES]			#查询数据(默认升序排列)
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]	#按score大小进行范围查询
zrevrange key start stop [WITHSCORES]		#反转查询(降序排列)

zcard key									#获取集合的数据数量
zcount key min max							#根据score的值,获取指定范围的数据数量

zrem key member [member ...]				#移除数据
zremrangebyrank key start stop				#范围移除
zremrangebyscore key min max				#根据score的值进行范围移除

zinterstore destination numkeys key [key ...]	#求交集并存储到destination中
zunionstore destination numkeys key [key ...]	#求并集并存储到destination中

扩展操作

zrank key member				#获取(升序)排序索引
zrevrank key member				#获取(降序)排序索引

zscore key member				#获取指定数据的score
zincrby key increment member	#修改指定member的score,increment为正则增加,为负则减。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值