Loading... # 引言 使用编程语言和框架太多了,基础命令都忘记的差不多了,`keys * ` 和 `get * ` 都混淆了,获取所有键我居然用了`get *`,复习一下。 # 总结思路 结合Redis-GUI和Redis-CLI配合方式校验和复习。 # 系统命令 - `ping` 测试连通性,响应值为`PONG` - `shutdown [NOSAVE|SAVE]` 关闭服务端 参数存在NOSAVE和SAVE,也就是持久化操作 - `select index` 切换数据库,redis一共存在16个数据库[0-15] 通过select选择数据库,类似于`use`命令 - `move key db` 移动key到db,也就是把选择的键移动到另一个数据库 # 常用命令 ## keys ```bash keys pattern keys * # 获取所有键 ``` ![keys](https://www.zunmx.top/usr/uploads/2022/12/3447701164.png) 此时如果我们尝试用pattern做一些扩展操作。 比如我们创建了con-01,con-02,con-03 键,并且通过`keys con-*`获取所有的con-开头的键 ![keys pattern](https://www.zunmx.top/usr/uploads/2022/12/12509541.png) ## dbsize ```bash dbsize # 获取键的个数 ``` ![dbsize](https://www.zunmx.top/usr/uploads/2022/12/3411381233.png) ## exists 测试时的key结构 ```bash 127.0.0.1:6379> keys * 1) "a" 2) "aa" 3) "con00" 4) "con-02" 5) "con-01" 6) "b" 7) "con-03" ``` ```bash exists key [key ...] # 键是否存在,可以写多个 ``` 返回值为存在的个数,如果`exists`后面加一个key, 返回值为1,那么说明这个键存在,返回值0则不存在 如果`exists`后面加两个key,返回值为0,这两个键都不存在,返回值为1,说明这两个键中只有一个键存在,2的话是都存在 ![exists](https://www.zunmx.top/usr/uploads/2022/12/4113377426.png) ## set ```bash set key value [expiration EX seconds|PX milliseconds] [NX|XX] 设置值 ``` 一般不设置过期时间可以直接set key value,如果需要同时设置过期时间,如下图所示 ![set&ex](https://www.zunmx.top/usr/uploads/2022/12/3132904462.png) ## get ```bash get key # 获取键的值 # 返回值为键的值,如果返回(nil)说明键不存在 ``` ![get](https://www.zunmx.top/usr/uploads/2022/12/2039619386.png) ## mset mget ```bash mset key value [key value ...] #批量设置值 mget key [key ... ] #批量获取值 ``` 批量设置值和获取值 ![mset/mget](https://www.zunmx.top/usr/uploads/2022/12/3864016027.png) ## del 顾名思义,删除键,以下为测试时键的结构 ```bash 1) "a" 2) "aa" 3) "con00" 4) "con-02" 5) "con-01" 6) "b" 7) "con-03" ``` ```bash del key [key ...] ``` 返回值为删除key成功的个数,如果del 后面的key 不存在,不会报错,只是会在返回值有所体现。 比如我执行`del a b c` 根据上面的结构,我不存在`c`这个键,因此返回值为2 ![del](https://www.zunmx.top/usr/uploads/2022/12/2501785032.png) ```bash 127.0.0.1:6379> keys * 1) "aa" 2) "con00" 3) "con-02" 4) "con-01" 5) "con-03" ``` ## type 查看键的类型,高级语言中我们知道typeof,type,其实和他们差不多。 ``` type key ``` 返回值:如果键存在,则返回键的类型,否则返回none ## ttl 获取过期时间 ```bash ttl key ``` 返回值-2键不存在(有些版本可能返回零), -1为永不过期,否则为剩余存活时间(秒) ![image.png](https://www.zunmx.top/usr/uploads/2022/12/411835835.png) ## expire 和 persist ```bash expire key seconds # 设置过期时间 persist key # 设置永不过期 ``` ![expire](https://www.zunmx.top/usr/uploads/2022/12/1937058850.png) ## rename ```bash rename key newkey # rename 旧名 新名 ``` ![rename](https://www.zunmx.top/usr/uploads/2022/12/841351250.png) ## setnx ```bash setnx key value 如果键不存在则创建,返回值1为创建成功,0为键已经存在 ``` ![setex](https://www.zunmx.top/usr/uploads/2022/12/1289168823.png) ## setex ```bash setex key seconds value ``` 给一个键赋值,如果存在则重新赋值,并且赋予过期时间 ![setex](https://www.zunmx.top/usr/uploads/2022/12/1745750777.png) ## incr /decr ```bash incr key # 键的值递增1 decr key # 键的值递减1 ``` 返回值时操作后的值 ![in/decr](https://www.zunmx.top/usr/uploads/2022/12/4097805065.png) ## incrby / decrby ```bash incrby key increment # 键的值递增 increment decrby key increment # 键的值递减 increment ``` 这样就可以递增指定的数了 ![in/decrby](https://www.zunmx.top/usr/uploads/2022/12/1985940140.png) ## append ```bash append key value # 字符串后面追加字符 ``` ![append](https://www.zunmx.top/usr/uploads/2022/12/4287809392.png) ## strlen ```bash strlen key # 获取键值的长度 ``` 通过可视化工具设置一个中文字符串,获取其文本长度 ![rdm](https://www.zunmx.top/usr/uploads/2022/12/2806311724.png) 看来一个中文字符占用三个字节 ![cli](https://www.zunmx.top/usr/uploads/2022/12/2267423300.png) ## getrange ```bash getrange key start end # 截取字符串,start和end为索引 ``` ![getrange](https://www.zunmx.top/usr/uploads/2022/12/4198536199.png) ## sadd 和 smembers set 集合是无序且不重复的列表,通过sadd和smembers进行增加和查看操作 ```bash sadd key member [member ...] # 添加元素到key中 smembers key # 查看set列表中的元素 ``` ![image.png](https://www.zunmx.top/usr/uploads/2022/12/3589966260.png) ## SISMEMBER ```bash SMEMBERS key member # 判断元素是否在key中,返回值0为不在,1为在 ``` ![SMEMBERS](https://www.zunmx.top/usr/uploads/2022/12/554458204.png) ## scard ```bash sacrd key # 获取set中元素的个数 ``` ![image.png](https://www.zunmx.top/usr/uploads/2022/12/1682753569.png) ## srem ```bash srem key member [member ...] # 删除set中的元素,可以一次性删除多个 ``` ![image.png](https://www.zunmx.top/usr/uploads/2022/12/2161956837.png) ## spop ``` SPOP key [count] # 随机删除set中的任意个数元素,并且返回出来 ``` ![image.png](https://www.zunmx.top/usr/uploads/2022/12/1287812143.png) ## zadd zset是有序集合,我感觉和hash很像 ```bash zadd key [NX|XX] [CH] [INCR] score member [score member ...] # 添加zset元素 ``` ![zadd](https://www.zunmx.top/usr/uploads/2022/12/1629991219.png) ## zscore ```bash zscore key member # 查看zset元素所对应成员的值 ``` ![image.png](https://www.zunmx.top/usr/uploads/2022/12/1718477488.png) ## zrange ```bash zrange key start stop [WITHSCORES] # 获取zset中一定范围内的元素 ``` ![zrange](https://www.zunmx.top/usr/uploads/2022/12/2715483945.png) ![zrange.WITHSCORES](https://www.zunmx.top/usr/uploads/2022/12/3935365680.png) ## zcard ```bash zcard key # 获取zset元素个数 ``` ![zcard](https://www.zunmx.top/usr/uploads/2022/12/3986170255.png) ## zcount ```bash ZCOUNT key min max # 获取分数在一定范围内的元素个数 ``` ![zcount](https://www.zunmx.top/usr/uploads/2022/12/2360846997.png) ## zrem ```bash zrem key member [member ...] # 删除集合中指定元素 ``` ![zrem](https://www.zunmx.top/usr/uploads/2022/12/541183719.png) ## zrank ```bash zrank key member # 获取成员索引信息 ``` ![zrank](https://www.zunmx.top/usr/uploads/2022/12/1853894867.png) ## ZINCRBY ```bash ZINCRBY key increment member # 对指定元素索引值的增减 ``` 这里不存在decr方法,所以increment部分通过负数进行递减操作 ![ZINCRBY](https://www.zunmx.top/usr/uploads/2022/12/3410976941.png) ## lpush rpush 列表左\右插入元素 ```bash lpush key value [value ...] # 往队列头部插入一个元素 rpush key value [value ...] # 往队列尾部插入一个元素 ``` ![lpush/rpush](https://www.zunmx.top/usr/uploads/2022/12/995868808.png) ## lrange ```bash lrange key start stop # 获取列表指定范围内的元素 ``` ![lrange](https://www.zunmx.top/usr/uploads/2022/12/4281692832.png) ## lset ```bash lset key index value # 修改指定索引的值 ``` ![lset](https://www.zunmx.top/usr/uploads/2022/12/906975452.png) ## llen ```bash llen key # 获取列表元素个数 ``` ![llen](https://www.zunmx.top/usr/uploads/2022/12/118395350.png) ## lrem ``` lrem key count value # 从列表中移除指定元素 ``` count 可以这么理解它 当count = 0 时,删除所有value 当count > 0 时,删除左侧count个value 当count < 0 时,删除右侧count个value ![lrem.1](https://www.zunmx.top/usr/uploads/2022/12/1618347688.png) ![lrem.2](https://www.zunmx.top/usr/uploads/2022/12/4077868964.png) ## ltrim ```bash ltrim key start stop # ⚠️保留范围内元素 ``` ![ltrim](https://www.zunmx.top/usr/uploads/2022/12/2103775672.png) ## hset hmset ```bash hset key field value # 为字段设置值,实际上也可以设置多个 hmset key field value [field value ...] # 设置多个字段及值 hsetnx key field value # 当字段不存在时赋值 ``` ![hset hmset](https://www.zunmx.top/usr/uploads/2022/12/3056396922.png) ![hsetnx](https://www.zunmx.top/usr/uploads/2022/12/2648538409.png) ## hget hmget hgetall ```bash hget key field # 获取字段的值 hmget key field [field ...] # 获取多个键的值 hgetall key 获取所有键和值 ``` ![hget.hmget](https://www.zunmx.top/usr/uploads/2022/12/1667791365.png) ![hgetall](https://www.zunmx.top/usr/uploads/2022/12/2797588513.png) ## hkeys hvals ```bash hkeys key # 获取包含的所有键 hvals key # 获取包含的所有键对应的值 ``` ![hkeys](https://www.zunmx.top/usr/uploads/2022/12/2004162818.png) ![hvals](https://www.zunmx.top/usr/uploads/2022/12/723514628.png) ## hexists ```bash hexists key field # 判断集合中某个键值是否存在 ``` ![hexists](https://www.zunmx.top/usr/uploads/2022/12/3268257912.png) ## hlen ```bash hlen key # 获取key的个数 ``` ![hlen](https://www.zunmx.top/usr/uploads/2022/12/3178763595.png) ## hincrby ```bash hincrby key field increment # hash散列中某个键对应的值递增 ``` ![hincrby](https://www.zunmx.top/usr/uploads/2022/12/917479709.png) ## hdel ```bash hdel key field [field ...] # 删除散列中的键 ``` ![hdel](https://www.zunmx.top/usr/uploads/2022/12/116670615.png) © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏