【Redis】常用命令、各种数据结构及命令

落日映苍穹つ 2023-09-27 17:37 223阅读 0赞

目录

一、常见数据结构

二、常用命令

1、查询符合的所有key

2、删除key

3、判断key是否存在

4、给key设置过期时间

5、查看key的剩余过期时间

三、不同数据类型的操作命令

1、String

1.set

2.get

3.mset

4.mget

5.incr

6.incrby

7.incrbyfloat

8.setnx

9.setex

2、Hash

1.hset

2.hget

3.hmset

4.hmget

5.hgetall

6.hkeys

7.hvals

8.hincrby

9.hsetnx

3、List

1.lpush

2.rpush

3.lpop

4.rpop

5.lrange

6.blpop与brpop

4、Set

1.sadd

2.srem

3.scard

4.sismembers

5.smembers

6.sinter

7.sdiff

7.sunion

5、SortedSet

1.zadd

2.zrem

3.zscore

4.zrank

5.zcard

6.zcount

7.zincrby

8.zrange

9.zrangebyscore

10.zdiff、zinter、zunion


一、常见数据结构

Redis是一种k-v类型的非关系型数据库,他的key是String类型的,但他的value却有着丰富的类型

他常见的数据类型有5种:String类型、Hash类型、List类型、Set类型、SortedSet类型。

String类型就是简单的字符串类型,但是在String类型里又分为字符串类型、整数类型、浮点数类型,Hash类型则于Java里的HashMap类似其value是一个无序的字典,List类型与Java中的LinkedList类似,支持正向、反向检索,Set类似于Java里的HashSet类型,SortedSet相比Set是可以排序的与Java中TreeSet相同但是底层的实现确是不同的

二、常用命令

1、查询符合的所有key

keys 匹配规则

类似MySQL的模糊查询,要查找所有的key则为keys *

7e7b6030fa7044a6905555a04baed2f2.png

2、删除key

del key1 key2 ……

可一次删除多个也可一次删除一个key

5e21ea0bdd994eb798400696d750292a.png

3、判断key是否存在

exists key

判断key是否存在如果存在则返回1不存在则是0

a6393db35a7645e7af0516a3b3fa4786.png

4、给key设置过期时间

expire key time

可以给key设置指定存活时间,过了存活时间就被删除

560ab55f2d3948a98eb2cf15a22d83f4.png

5、查看key的剩余过期时间

ttl key

对key设置过期时间后我们就可以使用该命令来查看指定key的剩余时间

81627e004a0c4d10a4891cd6b1b81f75.png

三、不同数据类型的操作命令

1、String

String类型是redis里最简单的存储类型。他的value是字符串,但又根据不同的格式将字符串分为字符串、整数、浮点数三种,其中整数与浮点数支持自增与自减。下面是他的常见命令

1.set

set value

添加一个String类型的键值对,如果该键值对已存在就对其value进行修改

d938999d5cc547caa9c65676bf2f7489.png

2.get

get key

根据其key获取指定key的value

187f6dc560f645e28ebdb7f49a167032.png

3.mset

mset key1 value1 key2 value2 ……

批量添加多个String类型的键值对

b036dfb734bc43f5919329df0bf69425.png

4.mget

mget key1 key2

批量获取多个key对应的value

d5ea401a24254d34b665dafe3fbc1fd3.png

5.incr

incr key

让指定key对应value自增1

ea1c78c21b7e4d12bbc1a4dd4f77400c.png

6.incrby

incrby key num

让指定key的value自增num

4188c1e16e884c2d9e25411ac37218d0.png

7.incrbyfloat

incrbyfloat key num

让一个浮点型value自增num

dbcd7049c96646aa9f9ce7593df5a6d9.png

8.setnx

setnx key value

添加一个String类型的键值对如果该key存在就不会创建

40d87b90cfa443e7914fe641c0d33c64.png

9.setex

setex key time value

创建一个String类型键值对并指定存活时长

1762dd4a662b4002991a59697c521471.png

2、Hash

其中他的value是一个无序字典,他的value里面的一组一组的key-value

1.hset

hset key fileld value

添加一个hash类型的键值对

6f9d8fe2dd384c17abcdb8ba03eecbeb.png

2.hget

hget key field

获取hash类型key里的value

da1e42c7354c464296ff86e8ee39e272.png

3.hmset

hmest key field value field1 value1 ……

批量添加多个field-value

0588d7b86cc74c3e8d8ba4ce4ab74103.png

4.hmget

hmget key field1 field2……

批量获取key下多个field对应的value

65614b39c955495691060f87ac3aeb69.png

5.hgetall

hgetall key

获取key下所有的field-value

f2733fbd36b942eca5ce107a3f8f5a27.png

6.hkeys

hkeys key

获取key下的所有field

513f940bba7d4d46acefca2bc4a444df.png

7.hvals

hvals key

获取key下所有的field对应的value

0d70d56dd7ca49068d7c2d05c3974bc4.png

8.hincrby

hincrby key field num

让key下的field对应的value自增num

fd6840683e5e475d9a54a6ae8e4ba2e9.png

9.hsetnx

hsetnx key field value

添加一个key下对应的file-value如果field存在则不修改

8ebb67a47f984b9ea2108e2464e14689.png

3、List

该类型与Java里的LinkedList类型,它支持正向与反向检索

1.lpush

lpush key element

在list的左边添加一个element

2daeb3bdcdff4f788e3c49cfba0cf345.png

2.rpush

rpush key element

在list的右边添加一个element

bf3aaf457f894658bb9f8a229e663d95.png

3.lpop

lpop key

移除并返回列表左边的第一个元素

0f87db1a5ede4a02bfef1f644dc7651f.png

4.rpop

rpop key

移除并返回列表右边的第一个元素

822968fca41d4af3b0edcb0d54ea6bc2.png

5.lrange

lrange key star end

返回一段角标内的所有元素

6df41ead106c4de6a58602b07a8bd692.png

6.blpop与brpop

与lpop、rpop类似只不过当List里面没有元素的时候会阻塞等待直到有元素,这与阻塞队列类型

4、Set

与Java里面的hashSet类似,可以看作value为null的hash。他是无序的且不可重复查找快而且支持交集、并集、差集

1.sadd

sadd key member

向set中添加一个或多个元素

faec2c38677147679b2e334fd8f0bee0.png

2.srem

srem key member

移除key里指定的元素

9a920ada95a442dfbeb61e53e96390bc.png

3.scard

scard key

返回key里的元素个数

c0474cf0ee2d4dafb22a191aa51a1bb1.png

4.sismembers

sismembers key member

判断元素是否在该set里

cf714318505c4facbdc64e5bad959edc.png

5.smembers

smembers key

获取set里面的元素

1f1010f056ea4327934ee620b2644a4d.png

6.sinter

sinter key1 key2

求key1 set与key2 set的交集

7.sdiff

sdiff key1 key2

求key1 set与key2 set的差集

7.sunion

sunion key1 key2

求key1 set与key2 set的并集

5、SortedSet

可排序的结合,与Java里的TreeSet类型,SortedSet在插入时会带有一个score,会基于score进行排序

1.zadd

zadd key score member

添加一个或多个元素到SortedSet

1b40c51b259e4bd7a00546995d2d61d8.png

2.zrem

zrem key member

删除set指定的元素

cd217dead78f46c2ba0f2af8a9a8f71c.png

3.zscore

zscore key member

获取set里指定元素的score

0ee3f866e3804d7a9f5ba56b58d35d85.png

4.zrank

zrank key member

获取set里指定元素的排名

56486d913f1040559aea7a0fdd5cfccc.png

排名是以0开始的

5.zcard

zcard key

获取set里元素的个数

272db690c1b0412b946aa8e732675113.png

6.zcount

zcount key min max

统计set里score在min-max范围内的个数

b2dc7f7dd22945b59a293a8c7874d89b.png

7.zincrby

zincrby key num member

让set里指定元素自增num

bf880e2fa90c4adaaaf5f1ad945e9d6c.png

8.zrange

zrange key min max

按score排序后获取指定排名范围内的元素

c25983a024a6494d8268ef7bb92ebe8b.png

9.zrangebyscore

zrangebyscore key min max

按照score排序后获取指定score范围内的元素

10.zdiff、zinter、zunion

与Set相同获取两个集合的交并差集

发表评论

表情:
评论列表 (有 0 条评论,223人围观)

还没有评论,来说两句吧...

相关阅读