目录
6、Sorted sets类型指令(部分,可参考set类型)
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>,...} |
Streams | redis的消息中间件 |
Geospatial | 地理信息 key - <精度,维度,名称> |
HyperLogLog | 基数统计 |
Bitmaps | 位图,只能存放0或1 |
Bitfields | 位域,位图的升高级版 |
2、常用指令
1、keys有关指令
序号 | 指令 | 描述 |
---|---|---|
1 | keys * | 查看所有key |
2 | exists [key] | 判断key是否存在 |
3 | type [key] | 查看key的类型 |
4 | del [key] | 删除key |
5 | unlink [key] | 非阻塞删除(。。。) |
6 | ttl [key] | 查看key的过期时间,-1:永不过期,-2:已过期 |
7 | expire [key] [seconds] | 为key设定过期时间,单位:秒 |
8 | move [key] [dbindex] | 将key移到指定编号库中,redis默认有0-15号,共16个库 |
9 | select [dbindex] | 切换redis库,默认打开0号库 |
10 | dbsize | 查看当前库key的数量 |
11 | flushdb | 清空当前库 |
12 | flushall | 清空所有库 |
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 | 追加 |
2 | DECR key | key的值减1 |
3 | DECRBY key decrement | key的值根据步长减小 |
4 | GET key | 获取key的值 |
5 | GETDEL key | 获取key的值并删除 |
6 | GETEX key [ EX seconds | PX milliseconds | EXAT unix-time-seconds | PXAT unix-time-milliseconds | PERSIST ] | 获取key的值,并可选择性的为该key进行设置 |
7 | GETRANGE key start end | 返回key指定范围的值 |
8 | GETSET key value | 返回key的值,并设置新值 |
9 | INCR kye | key的值加1 |
10 | INCRBY key increment | key的值根据步长增大 |
11 | INCRBYFLOAT key increament | key的值根据步长增大(步长为浮点型) |
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的值 |
14 | MSET key value [key value ...] | 设置多个key |
15 | MSETNX key value [key value ...] | 如果key不存在,则设置key和value,多个key只要有一个存在则执行失败。 |
16 | SETRANGE key offset value | 将key的值从指定下标开始设置为value |
17 | STRLEN key | 返回key的值的长度 |
18 | SUBSTR key start end | 返回指定范围的值 |
3、Lists类型指令 Lists类型官方指令文档
序号 | 指令 | 描述 |
---|---|---|
1 | LPUSH key element [element ...] | 从list左边压入元素 |
2 | RPUSH key element [element ...] | 从list右边压入元素 |
3 | LPOP key [count] | 从list左边弹出指定个数元素 |
4 | RPOP key [count] | 从list右边弹出指定个数元素 |
5 | LSET key index element | 给list中下标元素 |
6 | LREM key count element | 从右边开始移除list中指定个数的某种元素 |
7 | LLEN key | 返回list的长度 |
8 | LTRIM key start stop | 截取并返回list指定片段的元素 |
9 | RPOPLPUSH source destination | 将前一个list(source)的最后一个元素移除,放入后一个list(destination)的开头 |
10 | LPOS key element [RANK rank] [COUNT num-matches] [MAXLEN len] | 返回list集合中第一个匹配到的元素的索引,rank:返回第几次匹配上的索引,默认为1;count 返回索引的个数;maxlen指定比较list的长度 |
11 | LINDEX key index | 返回list对应索引的值 |
12 | LINSERT key <BEFORE | AFTER> pivot element | 在值为pivot的元素前(或后)插入一个新元素element |
13 | LMOVE source destination <LEFT | RIGHT> <LEFT | RIGHT> | 将source数组中的左(或右)边的元素移除,放到destination数组中的左(或右)边,并返回 |
14 | LMPOP numkeys key [key ...] <LEFT | RIGHT> [count count] | 从给定的多个list中,从第一个不为空的数组的左(或右)边弹出一个或多个元素。numkeys为所给出的list的个数 |
15 | LPUSHX key element [element ...] | 当list存在时向list左边压入一个或多个元素 |
16 | RPUSHX 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都为空时会阻塞等待其他客户端添加元素后继续执行或阻塞时间结束才结束指令 |
19 | BLPOP key [key ...] timeout | 阻塞式LPOP |
20 | BRPOP key [key ...] timeout | 阻塞式RPOP |
21 | BRPOPLPUSH source destination timeout | 阻塞式RPOPLPUSH |
22 | LRANGE key start stop | 返回list指定范围的具体元素 |
4、Sets类型指令 Sets类型官方指令文档
序号 | 指令 | 描述 |
---|---|---|
1 | SADD key member [menber ...] | 向集合中添加元素 |
2 | SCARD key | 返回集合基数 |
3 | SDIFF key [key ...] | 返回第一个集合去除后续集合相同元素后的集合 |
4 | SDIFFSTORE destination key [key ...] | 将SDIFF的结果放入destination集合中 |
5 | SINTER key [key ...] | 返回所给集合的交集(intersection) |
6 | SINTERCARD numkeys key [key ...] [LIMIT limit] | 返回所给集合的交集的基数,limit:限制最大基数,默认为0:即没有限制 |
7 | SINTERSTORE destination key [key ...] | 将SINTER的结果放入destination集合中 |
8 | SISMEMBER key member | 判断集合是否包含该元素 |
9 | SMOVE source destination member | 将source集合中的一个元素移除,并放入destination 集合中 |
10 | SPOP key [count] | 随机移除集合中的一个或多个元素 |
11 | SRANDMEMBER key [count] | 随机返回集合中一个或多个元素 |
12 | SREM key member [member ...] | 从集合中移除指定的元素,返回移除元素的个数 |
13 | SSCAN key cursor [MATCH pattern] [count count] | 扫描给定集合,返回满足匹配规则的元素,cursor:游标,从哪里开始扫描;match:匹配规则;count:返回元素个数限制 |
14 | SUNION key [key ...] | 返回所给集合的并集 |
15 | SUNIONSTORE destination key [key ...] | 将SUNION的结果放入destination集合中 |
5、Hashes类型指令 Hashes类型官网指令文档
序号 | 指令 | 描述 |
---|---|---|
1 | HDEL key field [field ...] | 移除指定的属性 |
2 | HEXISTS key field | 判断hash的某个属性是否存在 |
3 | HGET key field | 获取某个hash的某个属性值 |
4 | HGETALL key | 获取hash的所有属性和属性值 |
5 | HINCRBY key field increment | 使hash的某个属性按给定步长增加 |
6 | HINCRBYFLOAT key field increment | 使hash的某个属性按给定步长增加,步长为浮点型 |
7 | HKEYS key | 返回hash所有属性的key |
8 | HLEN key | 返回hash的属性个数 |
9 | HMGET key field [field ...] | 返回多个属性的值 |
10 | HMSET key field value [field value...] | 设置多个属性的值 |
11 | HRANDFIELD key [count [WITHVALUES]] | 随机返回hash的一个属性值。count:随机返回属性的个数;withvalues:和值一起返回 |
12 | HSCAN key cursor [MATCH pattern] [COUNT count] | 从指定游标位置开始扫描hash,返回匹配成功的属性名和属性值 |
13 | HSTRLEN key field | 返回hash某个属性值的字符串长度 |
14 | HVALS key | 返回hash的所有属性值 |
15 | HSET key field value [field value ...] | 设置hash的属性 |
16 | HSETNX key field value | 如果属性不存在,则设置该属性的值 |
6、Sorted sets类型指令(部分,可参考set类型) Sorted sets类型官方指令文档
序号 | 指令 | 描述 |
---|---|---|
1 | ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member ...] | 向集合中添加元素。NX|XX:key存在时添加还是不存在时添加;GT|LT: |
2 | ZCARD key | 返回集合的基数 |
3 | ZCOUNT key min max | 返回指定score范围的元素个数 |
4 | ZDIFF numkeys key [key ...] [WITHSCORES] | 含score的SDIFF |
5 | ZINTER mumkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE <SUM | MIN | MAX> [WITHSCORES] | 返回交集,socore可指定为相加,取最大,取最小,weights 为操作之前要乘的权重 |
6 | ZRANK key member [WITHSCORE] | 返回成员在集合中的排名 |
7 | ZREMRANGEBYRANK key min max | 通过排名范围删除 |
7、Streams类型指令 Streams类型官方指令文档
消息队列一般不用这个做,小型项目可以用这个做
8、Geospatial indexes类型 Geospatial indexes类型官方指令文档
序号 | 指令 | 描述 |
---|---|---|
1 | GEOADD key [NX|XX] [CH] longitude latitude member [longitude latitude member ...] | 添加一个或多个地理位置 |
2 | GEODIST key member1 member2 [M | KM | FT | MI] | 获取两个地方的距离,可指定单位 |
3 | GEOHASH key [member [member ...]] | 返回地理位置的hash值 |
4 | GEOPOS 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指令完全相同 |
7 | GEORADIUSBYMEMBER key member radius <M | KM | FT | MI> [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC | DESC] [STORE key] [STOREDIST key] | 查看成员指定范围的地理位置 |
8 | GEORADIUSBYMEMBER_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]] | 按指定单位给指定范围计数 |
2 | BITFIELD_RO [GET encoding offset [GET encoding offset ...]] | 只读版本的BITFIELD |
3 | BITOP <AND | OR | XOR | NOT> destkey key [key ...] | 将多个位图进行指定操作后保存至destkey位图中 |
4 | SETBIT key offset value | 设置位图 |
5 | BITPOS key bit [start [end [BYTE | BIT]]] | 返回字符串里第一个被设置为1或0的bit位置 |
6 | GETBIT key offset | 获取比特位 |
10、Bitfield类型指令 Bitmaps类型官方指令文档
11、HyperLogLog类型指令 HyperLogLog类型官网指令文档
序号 | 指令 | 描述 |
---|---|---|
1 | PFADD key [element [element ...]] | 添加一个或多个元素 |
2 | PFCOUNT key [key ...] | 将指定key合并计算基数 |
3 | PFDEBUG subcommand key | 内部指令,用于redis的开发和测试 |
4 | PFMERGE destkey [sourcekey [sourcekey ...]] | 将多个基数合并放入destkey中 |
5 | PFSELFTEST | 内部指令,用于redis的开发和测试 |