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 * # 获取所有键 ```  此时如果我们尝试用pattern做一些扩展操作。 比如我们创建了con-01,con-02,con-03 键,并且通过`keys con-*`获取所有的con-开头的键  ## dbsize ```bash dbsize # 获取键的个数 ```  ## 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的话是都存在  ## set ```bash set key value [expiration EX seconds|PX milliseconds] [NX|XX] 设置值 ``` 一般不设置过期时间可以直接set key value,如果需要同时设置过期时间,如下图所示  ## get ```bash get key # 获取键的值 # 返回值为键的值,如果返回(nil)说明键不存在 ```  ## mset mget ```bash mset key value [key value ...] #批量设置值 mget key [key ... ] #批量获取值 ``` 批量设置值和获取值  ## 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  ```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为永不过期,否则为剩余存活时间(秒)  ## expire 和 persist ```bash expire key seconds # 设置过期时间 persist key # 设置永不过期 ```  ## rename ```bash rename key newkey # rename 旧名 新名 ```  ## setnx ```bash setnx key value 如果键不存在则创建,返回值1为创建成功,0为键已经存在 ```  ## setex ```bash setex key seconds value ``` 给一个键赋值,如果存在则重新赋值,并且赋予过期时间  ## incr /decr ```bash incr key # 键的值递增1 decr key # 键的值递减1 ``` 返回值时操作后的值  ## incrby / decrby ```bash incrby key increment # 键的值递增 increment decrby key increment # 键的值递减 increment ``` 这样就可以递增指定的数了  ## append ```bash append key value # 字符串后面追加字符 ```  ## strlen ```bash strlen key # 获取键值的长度 ``` 通过可视化工具设置一个中文字符串,获取其文本长度  看来一个中文字符占用三个字节  ## getrange ```bash getrange key start end # 截取字符串,start和end为索引 ```  ## sadd 和 smembers set 集合是无序且不重复的列表,通过sadd和smembers进行增加和查看操作 ```bash sadd key member [member ...] # 添加元素到key中 smembers key # 查看set列表中的元素 ```  ## SISMEMBER ```bash SMEMBERS key member # 判断元素是否在key中,返回值0为不在,1为在 ```  ## scard ```bash sacrd key # 获取set中元素的个数 ```  ## srem ```bash srem key member [member ...] # 删除set中的元素,可以一次性删除多个 ```  ## spop ``` SPOP key [count] # 随机删除set中的任意个数元素,并且返回出来 ```  ## zadd zset是有序集合,我感觉和hash很像 ```bash zadd key [NX|XX] [CH] [INCR] score member [score member ...] # 添加zset元素 ```  ## zscore ```bash zscore key member # 查看zset元素所对应成员的值 ```  ## zrange ```bash zrange key start stop [WITHSCORES] # 获取zset中一定范围内的元素 ```   ## zcard ```bash zcard key # 获取zset元素个数 ```  ## zcount ```bash ZCOUNT key min max # 获取分数在一定范围内的元素个数 ```  ## zrem ```bash zrem key member [member ...] # 删除集合中指定元素 ```  ## zrank ```bash zrank key member # 获取成员索引信息 ```  ## ZINCRBY ```bash ZINCRBY key increment member # 对指定元素索引值的增减 ``` 这里不存在decr方法,所以increment部分通过负数进行递减操作  ## lpush rpush 列表左\右插入元素 ```bash lpush key value [value ...] # 往队列头部插入一个元素 rpush key value [value ...] # 往队列尾部插入一个元素 ```  ## lrange ```bash lrange key start stop # 获取列表指定范围内的元素 ```  ## lset ```bash lset key index value # 修改指定索引的值 ```  ## llen ```bash llen key # 获取列表元素个数 ```  ## lrem ``` lrem key count value # 从列表中移除指定元素 ``` count 可以这么理解它 当count = 0 时,删除所有value 当count > 0 时,删除左侧count个value 当count < 0 时,删除右侧count个value   ## ltrim ```bash ltrim key start stop # ⚠️保留范围内元素 ```  ## hset hmset ```bash hset key field value # 为字段设置值,实际上也可以设置多个 hmset key field value [field value ...] # 设置多个字段及值 hsetnx key field value # 当字段不存在时赋值 ```   ## hget hmget hgetall ```bash hget key field # 获取字段的值 hmget key field [field ...] # 获取多个键的值 hgetall key 获取所有键和值 ```   ## hkeys hvals ```bash hkeys key # 获取包含的所有键 hvals key # 获取包含的所有键对应的值 ```   ## hexists ```bash hexists key field # 判断集合中某个键值是否存在 ```  ## hlen ```bash hlen key # 获取key的个数 ```  ## hincrby ```bash hincrby key field increment # hash散列中某个键对应的值递增 ```  ## hdel ```bash hdel key field [field ...] # 删除散列中的键 ```  © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏