一、Redis-十大数据类型及其指令

文章详细介绍了Redis中的十大数据类型,包括Strings、Lists、Sets、Hashes、Sortedsets等,并列举了相关指令,如keys、strings操作、lists操作等,适用于Redis数据库管理和开发人员参考。
摘要由CSDN通过智能技术生成

目录

1、十大数据类型

2、常用指令

1、keys有关指令

2、Strings类型指令

3、Lists类型指令

4、Sets类型指令

5、Hashes类型指令

6、Sorted sets类型指令(部分,可参考set类型)

7、Streams类型指令

8、Geospatial indexes类型

9、Bitmaps类型指令

10、Bitfield类型指令

11、HyperLogLog类型指令


1、十大数据类型

类型名称类型描述
Strings字符串,redis中最基础的类型,k-v
Lists数组,元素有序可重复,k-[v1,v2,v3,...]
Sets集合,元素无序且不重复,k-{v1,v2,v3,...}
Hashes哈希,k-{<k1,v1>,<k2,v2>,...},类似于java中对象,有一个对象名,对象中有多个属性名-属性值
Sorted sets有序集合,在集合的基础上多了一个score来作为排序的准则,k-{<score1,value1>,<score2,value2>,...}
Streamsredis的消息中间件
Geospatial

地理信息 key - <精度,维度,名称>

HyperLogLog基数统计
Bitmaps位图,只能存放0或1
Bitfields位域,位图的升高级版

2、常用指令

1、keys有关指令

序号指令 描述
1keys *查看所有key
2exists [key]判断key是否存在
3type [key]查看key的类型
4del [key]删除key
5unlink [key]非阻塞删除(。。。)
6ttl [key]查看key的过期时间,-1:永不过期,-2:已过期
7expire [key] [seconds]为key设定过期时间,单位:秒
8move [key] [dbindex]将key移到指定编号库中,redis默认有0-15号,共16个库
9select [dbindex]切换redis库,默认打开0号库
10dbsize查看当前库key的数量
11flushdb清空当前库
12flushall清空所有库

2、Strings类型指令        Strings类型官方指令文档

set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]
  • EX seconds:以秒为单位设置过期时间
  • FX milliseconds:以毫秒为单位设置过期时间
  • BXAT time stamg:设置以秒为单位的unix时间戳所对应的时间为过期时间
  • PXAI milliseconds-timestamp:设置以毫秒为单位的unix时间戳所对应的时间为过期时间
  • NX:键不存在的时候设置键值
  • XX:键存在的时候设置键值
  • KEEPTTI:设置该key的value后保留之前的过期时间,默认为不保留
  • GET:将该key设置为新值后,返回key原本的值,若键不存在时返回nil
序号指令描述
1

APPEND key value

追加
2DECR keykey的值减1
3DECRBY key decrementkey的值根据步长减小
4GET key获取key的值
5GETDEL key获取key的值并删除
6

GETEX key [ EX seconds |

PX milliseconds |

EXAT unix-time-seconds |

PXAT unix-time-milliseconds | PERSIST ]

获取key的值,并可选择性的为该key进行设置
7GETRANGE key start end返回key指定范围的值
8GETSET key value返回key的值,并设置新值
9INCR kyekey的值加1
10INCRBY key incrementkey的值根据步长增大
11INCRBYFLOAT key increamentkey的值根据步长增大(步长为浮点型)
12

LCS key1 key2 [LEN] [IDX]  [MINMATCHLEN min-match-len] [WITHMATCHLEN]

LCS(longest common subsequence),返回key1和key2两个字符串的最大共同元素的集合。eg,k1:hello,k2:ho,LCS = “ho”

13

MGET key [key ...]

返回多个key的值
14MSET key value [key value ...]设置多个key
15MSETNX key value [key value ...]如果key不存在,则设置key和value,多个key只要有一个存在则执行失败。
16SETRANGE key offset value将key的值从指定下标开始设置为value
17STRLEN key返回key的值的长度
18SUBSTR key start end返回指定范围的值

3、Lists类型指令        Lists类型官方指令文档

序号指令描述
1LPUSH key element [element ...]从list左边压入元素
2RPUSH key element [element ...]从list右边压入元素
3LPOP key [count]从list左边弹出指定个数元素
4RPOP key [count]从list右边弹出指定个数元素
5LSET key index element给list中下标元素
6LREM key count element 

从右边开始移除list中指定个数的某种元素

7LLEN key返回list的长度
8LTRIM key start stop截取并返回list指定片段的元素
9RPOPLPUSH source destination将前一个list(source)的最后一个元素移除,放入后一个list(destination)的开头
10LPOS key element [RANK rank] [COUNT num-matches] [MAXLEN len]返回list集合中第一个匹配到的元素的索引,rank:返回第几次匹配上的索引,默认为1;count 返回索引的个数;maxlen指定比较list的长度
11LINDEX key index返回list对应索引的值
12LINSERT key <BEFORE | AFTER> pivot element在值为pivot的元素前(或后)插入一个新元素element
13LMOVE source destination <LEFT | RIGHT> <LEFT | RIGHT>将source数组中的左(或右)边的元素移除,放到destination数组中的左(或右)边,并返回
14LMPOP numkeys key [key ...] <LEFT | RIGHT> [count count]从给定的多个list中,从第一个不为空的数组的左(或右)边弹出一个或多个元素。numkeys为所给出的list的个数
15

LPUSHX key element

[element ...]

当list存在时向list左边压入一个或多个元素
16RPUSHX key element

[element ...]

当list存在时向list右边压入一个或多个元素
17

BLMOVE source destination <LEFT | RIGHT>

<LEFT | RIGHT> timeout

阻塞式LMOVE,当source数组中有元素时,和LMOVE一样,当source数组中没有元素时会阻塞,需要等待其他客户端向source数组中添加元素继续执行或者阻塞时间timeout结束才能结束该指令
18

BLMPOP timeout numkeys key

[key ...] <LEFT | RIGHT> [COUNT count]

阻塞式LMPOP,当给定的所有list都为空时会阻塞等待其他客户端添加元素后继续执行或阻塞时间结束才结束指令
19BLPOP key [key ...] timeout阻塞式LPOP
20BRPOP key [key ...] timeout阻塞式RPOP
21BRPOPLPUSH source destination timeout阻塞式RPOPLPUSH
22

LRANGE key start stop

返回list指定范围的具体元素

4、Sets类型指令       Sets类型官方指令文档

序号指令描述
1SADD key member [menber ...]向集合中添加元素
2SCARD key返回集合基数
3SDIFF key [key ...]返回第一个集合去除后续集合相同元素后的集合
4SDIFFSTORE destination key [key ...]将SDIFF的结果放入destination集合中
5SINTER key [key ...]返回所给集合的交集(intersection)
6

SINTERCARD numkeys key [key ...]

[LIMIT limit]

返回所给集合的交集的基数,limit:限制最大基数,默认为0:即没有限制
7

SINTERSTORE destination key

[key ...]

将SINTER的结果放入destination集合中
8SISMEMBER key member 判断集合是否包含该元素
9SMOVE source destination member将source集合中的一个元素移除,并放入destination 集合中
10SPOP key [count]随机移除集合中的一个或多个元素
11SRANDMEMBER key [count]随机返回集合中一个或多个元素
12SREM key member [member ...]从集合中移除指定的元素,返回移除元素的个数
13SSCAN key cursor [MATCH pattern] [count count]扫描给定集合,返回满足匹配规则的元素,cursor:游标,从哪里开始扫描;match:匹配规则;count:返回元素个数限制
14SUNION key [key ...]返回所给集合的并集
15

SUNIONSTORE destination key

[key ...]

将SUNION的结果放入destination集合中

5、Hashes类型指令        Hashes类型官网指令文档

序号指令描述
1HDEL key field [field ...]移除指定的属性
2HEXISTS key field判断hash的某个属性是否存在
3HGET key field 获取某个hash的某个属性值
4

HGETALL key

获取hash的所有属性和属性值
5HINCRBY key field increment使hash的某个属性按给定步长增加
6HINCRBYFLOAT key field increment使hash的某个属性按给定步长增加,步长为浮点型
7HKEYS key返回hash所有属性的key
8HLEN key返回hash的属性个数
9

HMGET key field [field ...]

返回多个属性的值
10HMSET key field value [field value...]设置多个属性的值
11

HRANDFIELD key

[count [WITHVALUES]]

随机返回hash的一个属性值。count:随机返回属性的个数;withvalues:和值一起返回
12HSCAN key cursor [MATCH pattern] [COUNT count]从指定游标位置开始扫描hash,返回匹配成功的属性名和属性值
13HSTRLEN key field返回hash某个属性值的字符串长度
14HVALS key返回hash的所有属性值
15HSET key field value [field value ...]设置hash的属性
16HSETNX key field value 如果属性不存在,则设置该属性的值

6、Sorted sets类型指令(部分,可参考set类型)        Sorted sets类型官方指令文档

序号指令描述
1ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member ...]向集合中添加元素。NX|XX:key存在时添加还是不存在时添加;GT|LT:
2ZCARD key返回集合的基数
3ZCOUNT key min max返回指定score范围的元素个数
4ZDIFF numkeys key [key ...] [WITHSCORES]含score的SDIFF
5ZINTER mumkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE <SUM | MIN | MAX> [WITHSCORES]返回交集,socore可指定为相加,取最大,取最小,weights 为操作之前要乘的权重
6ZRANK key member [WITHSCORE]返回成员在集合中的排名
7ZREMRANGEBYRANK key min max 通过排名范围删除

7、Streams类型指令        Streams类型官方指令文档

消息队列一般不用这个做,小型项目可以用这个做

8、Geospatial indexes类型        Geospatial indexes类型官方指令文档

序号指令描述
1GEOADD key [NX|XX] [CH] longitude latitude member [longitude latitude member ...]添加一个或多个地理位置
2

GEODIST key member1 member2

[M | KM | FT | MI]

获取两个地方的距离,可指定单位
3GEOHASH key [member [member ...]]返回地理位置的hash值
4GEOPOS key [member [member ...]]返回地理位置的经纬度
5

GEORADIUS key longitude latitude radius

<M | KM | FT | MI> [WITHCOORD]

[WITHDIST] [WITHHASH]

[COUNT count [ANY]]

[ASC | DESC] [STORE key] [STOREDIST key]

返回所指定地点指定半径范围的地理位置
6

GEORADIUS_RO key longitude latitude radius

<M | KM | FT | MI>

[WITHCOORD]

[WITHDIST] [WITHHASH]

[COUNT count [ANY]]

[ASC | DESC]

除了不支持存储参数,GEORADIUS指令完全相同
7GEORADIUSBYMEMBER key member radius 

<M | KM | FT | MI>

[WITHCOORD]

[WITHDIST] [WITHHASH]

[COUNT count [ANY]]

[ASC | DESC] [STORE key] [STOREDIST key]

查看成员指定范围的地理位置
8GEORADIUSBYMEMBER_RO key member radius 

<M | KM | FT | MI>

[WITHDIST] [WITHHASH]

[COUNT count [ANY]]

[ASC | DESC] 

不支持存储参数的GEORADIUSBYMEMBER
9

GEOSEARCH key <FROMMEMBER member | FROMLONLAT longitude latidude> <BYRADIUS radius

<M | KM | FT | MI> | BYBOX width height <M | KM | FT | MI>>

[ASC | DESC]

[COUNT count[ANY]]

 [WITHCOORD] [WITHDIST] [WITHHASH] 

获取指定区域的地理位置
10

GEOSEARCH key <FROMMEMBER member | FROMLONLAT longitude latidude> <BYRADIUS radius

<M | KM | FT | MI> | BYBOX width height <M | KM | FT | MI>> 

[ASC | DESC]

[COUNT count[ANY]]

 [WITHCOORD] [WITHDIST] [WITHHASH] [STORE key] [STOREDIST key]

获取指定区域的地理位置,支持存储参数

9、Bitmaps类型指令        Bitmaps类型官方指令文档

序号指令描述
1

BITCOUNT key [start end

[BYTE | BIT]]

按指定单位给指定范围计数
2BITFIELD_RO [GET encoding offset [GET encoding offset ...]]只读版本的BITFIELD
3

BITOP <AND | OR | XOR | NOT>

destkey key [key ...]

将多个位图进行指定操作后保存至destkey位图中
4SETBIT key offset value设置位图
5BITPOS key bit [start [end [BYTE | BIT]]]返回字符串里第一个被设置为1或0的bit位置
6GETBIT key offset获取比特位

10、Bitfield类型指令        Bitmaps类型官方指令文档

11、HyperLogLog类型指令        HyperLogLog类型官网指令文档 

序号指令描述
1PFADD key [element [element ...]]添加一个或多个元素
2PFCOUNT key [key ...]将指定key合并计算基数
3PFDEBUG subcommand key内部指令,用于redis的开发和测试
4PFMERGE destkey [sourcekey [sourcekey ...]]将多个基数合并放入destkey中
5PFSELFTEST内部指令,用于redis的开发和测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值