侧边栏壁纸
博主头像
zyixin

当你觉得为时已晚的时候,恰恰是最早的时候

  • 累计撰写 66 篇文章
  • 累计创建 0 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Redis常用命令

zyixin
2022-09-22 / 0 评论 / 0 点赞 / 2,689 阅读 / 3,421 字
温馨提示:
本文最后更新于 2023-05-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Redis常用命令

1. 查看状态:ping

解释:输入 ping,redis 给我们返回 PONG,表示 redis 服务运行正常

127.0.0.1:6379> ping
PONG

2. 查看当前数据库中 key 的数目:dbsize

语法:dbsize 作用:返回当前数据库的 key 的数量。
返回值:数字,key的数量

127.0.0.1:6379> dbsize
(integer) 0

3. 切换库命令:select

使用其他数据库,命令是 select index

127.0.0.1:6379> select 5
OK
127.0.0.1:6379> 

4. 删除当前库的数据:flushdb

127.0.0.1:6379> flushdb
OK

5. 删除所有库的数据:flushdb

127.0.0.1:6379> flushall
20887:M 23 Sep 2022 15:52:28.688 * DB saved on disk
OK

6. time 显示服务器的时间,时间戳(秒)

127.0.0.1:6379> time
1) "1663918800"
2) "201487"

7、查看redis的相关状态信息

语法:info [命令参数]

127.0.0.1:6379> info

8、查看redis集群信息

127.0.0.1:6379[1]> info cluster

9、查看redis连接数

127.0.0.1:6379[1]> info clients

10、获取redis服务的配置信息

127.0.0.1:6379[1]> config get *

11. Redis 的 Key 的操作命令:keys

语法:keys pattern 作用:查找所有符合模式 pattern 的 key. pattern 可以使用通配符。通配符:
* : 代表0-多个字符,例如 keys* 可以查询所有的key
? : 表示单个字符,例如:wo?d , 匹配 word , wood

例 1:显示所有的 key

127.0.0.1:6379> keys *
1) "aabb"
2) "b"
3) "ab"
4) "a"

例 2:使用 * 表示 0 或多个字符

127.0.0.1:6379> keys a*
1) "aabb"
2) "ab"
3) "a"

例 3:使用 ? 表示单个字符

127.0.0.1:6379> keys a?
1) "ab"

1、 判断key是否存在:exists

语法:exists key [key…]
作用:判断 key 是否存在返回值:整数,存在 key 返回 1,其他返回 0. 使用多个 key,返回存在的 key 的数量。

127.0.0.1:6379> exists aabb
(integer) 1
127.0.0.1:6379> exists aabbc
(integer) 0

2、 设置key的过期时间:expire

语法:expire key seconds
作用:设置 key 的生存时间,超过时间,key 自动删除。单位是秒。
返回值:设置成功返回数字 1, 其他情况是 0 。

127.0.0.1:6379> expire aabb 5
(integer) 1
127.0.0.1:6379> expire aabb 5
(integer) 0

3、 查看key的过期时间:ttl

语法:ttl key
作用:以秒为单位,返回 key 的剩余生存时间(ttl: time to live)返回值:

-1 :没有设置 key 的生存时间, key 永不过期。
-2 :key 不存在
数字:key 的剩余时间,秒为单位

127.0.0.1:6379> ttl a
(integer) -1
127.0.0.1:6379> expire b 5
(integer) 1
127.0.0.1:6379> ttl b
(integer) 3
127.0.0.1:6379> ttl b
(integer) 2
127.0.0.1:6379> ttl b
(integer) 1
127.0.0.1:6379> ttl b
(integer) 1
127.0.0.1:6379> ttl b
(integer) -2

4、 查看key所存储值得数据类型:type

语法:type key
作用:查看 key 所存储值的数据类型返回值:字符串表示的数据类型

none (key 不存在)
string (字符串)
list (列表) set (集合)
zset (有序集)
hash (哈希表)

例 1:查看存储字符串

127.0.0.1:6379> type a
string

例 2:查看不存在的 key

127.0.0.1:6379> type aaa
none

5、 删除存在得key:del

语法:del key [key…]
作用:删除存在的 key ,不存在的 key 忽略。
返回值:数字,删除的 key 的数量。

例 :删除指定的 key

127.0.0.1:6379> keys *
1) "aabb"
2) "b"
3) "ab"
4) "a"
127.0.0.1:6379> del ssm
(integer) 0                                 <---- 删除一个不存在的key返回0
127.0.0.1:6379> del a
(integer) 1                                 <---- 删除一个存在的key返回1

String数据类型操作命令(字符串类型)

string数据结构

1、设置key的值:set

将字符串值 value 设置到 key 中
语法:set key value

127.0.0.1:6379> set test 123
OK

2、获取key的值:get

获取 key 中设置的字符串值
语法: get key
例如:获取 username 这个 key 对应的 value

127.0.0.1:6379> get test
"123"

3、 将 key 中储存的数字值加 1:incr

将 key 中储存的数字值加 1,如果 key 不存在,则 key 的值先被初始化为 0 再执行 incr 操作(只能对数字类型的数据操作)
语法:incr key

例 1:操作key,值增加 1

127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> incr a
(integer) 1
127.0.0.1:6379> incr a
(integer) 2

例 2:对非数字的值操作是不行的

127.0.0.1:6379> set c test
OK
127.0.0.1:6379> incr c
(error) ERR value is not an integer or out of range

4、将 key 中储存的数字值减1:decr

将 key 中储存的数字值减1,如果 key 不存在,则么 key 的值先被初始化为 0 再执行 decr 操作(只能对数字类型的数据操作)
语法:decr key

127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> decr a
(integer) 0                             <--- 存在减1
127.0.0.1:6379> decr a
(integer) -1                            <--- 0再减1,结果-1

5、如果 key 存在, 则将 value 追加到 key 原来旧值的末尾:append

语法:append key value
说明:如果 key 存在, 则将 value 追加到 key 原来旧值的末尾,如果 key 不存在, 则将 key 设置值为 value
返回值:追加字符串之后的总长度

例 1:追加内容到存在的 key

127.0.0.1:6379> keys *
1) "test1"

127.0.0.1:6379> get test1
"aa"
127.0.0.1:6379> append test1 bbcc
(integer) 6
127.0.0.1:6379> get test1
"aabbcc"

例 2:追加到不存在的 key,同 set key value

127.0.0.1:6379> append test2 ccbbaa
(integer) 6
127.0.0.1:6379> keys *
1) "test1"
2) "test2"

6、返回 key 所储存的字符串值的长度返回值:strlen

语法:strlen key
说明:返回 key 所储存的字符串值的长度返回值:
①:如果key存在,返回字符串值的长度
②:key不存在,返回0

例:计算存在 key 的字符串长度

127.0.0.1:6379> strlen test2
(integer) 6

7、获取 key 中字符串值从 start 开始 到 end 结束 的子字符串:getrange

语法:getrange key start end
作用:获取 key 中字符串值从 start 开始 到 end 结束 的子字符串,包括 start 和 end, 负数表示从字符串的末尾开始, -1 表示最后一个字符
返回值:截取的子字符串。
使用的字符串 key: school, value: Peking

例 1: 截取从 2 到 5 的字符

127.0.0.1:6379>  set school Peking
OK
127.0.0.1:6379> getrange school 1 3
"eki"
127.0.0.1:6379> getrange school 2 5
"king"

# 索引从0开始

例 2:从字符串尾部截取,start ,end 是负数,最后一位是 -1

127.0.0.1:6379> getrange school -4 -2
"kin"

# 负数的话从后往前进行截取,最后一个数字为-1,也就是第一个数字

例 3:超出字符串范围的截取 ,获取合理的子串

127.0.0.1:6379> getrange school 2 200
"king"

8、用 value 覆盖(替换)key 的存储的值:setrange

语法:setrange key offset value
说明:用 value 覆盖(替换)key 的存储的值从 offset 开始,不存在的 key 做空白字符串。
返回值:修改后的字符串的长度

例 1:替换给定的字符串

127.0.0.1:6379> setrange school 1 zyxyyds
(integer) 8
127.0.0.1:6379> get school
"Pzyxyyds"

例 2:设置不存在的 key

127.0.0.1:6379> setrange nobody 0 100
(integer) 3
127.0.0.1:6379> get nobody 
"100"

9、同时设置一个或多个 key-value 对返回值:mset

语法:mset key value [key value…]
说明:同时设置一个或多个 key-value 对返回值: OK

例 1:一次设置多个 key, value

127.0.0.1:6379> mset heelo 123 hi 321 test aabb
OK
127.0.0.1:6379> keys *
1) "hi"
2) "heelo"
3) "test"

10、获取所有(一个或多个)给定 key 的值返回值:mget

语法:mget key [key …]
作用:获取所有(一个或多个)给定 key 的值返回值:包含所有 key 的列表

例 1:返回多个 key 的存储值

127.0.0.1:6379> mget hi heelo test
1) "321"
2) "123"
3) "aabb"

例 2:返回不存在的 key

127.0.0.1:6379> mget k1 k2 k3
1) (nil)
2) (nil)
3) (nil)

hash数据类型操作命令(哈希类型)

string数据结构

1、将哈希表 key 中的域 field 的值设为 value:hset

语法:hset hash 表的 key field value
作用:将哈希表 key 中的域 field 的值设为 value ,如果 key 不存在,则新建 hash 表,执行赋值,如果有 field ,则覆盖值。
返回值:
①如果 field 是 hash 表中新 field,且设置值成功,返回 1
②如果 field 已经存在,旧值覆盖新值,返回 0

例 1:新的 field

127.0.0.1:6379> hset web baidu www.baidu.com
(integer) 1

例 2:覆盖旧的的 field

127.0.0.1:6379> hset web baidu http://www.baidu.com
(integer) 0

2、获取哈希表 key 中给定域 field 的值:hget

语法:hget key field
作用:获取哈希表 key 中给定域 field 的值
返回值:field 域的值,如果 key 不存在或者 field 不存在返回 nil

例 1:获取存在 key 值的某个域的值

127.0.0.1:6379> hget web baidu
"http://www.baidu.com"

例 2:获取不存在的 field

127.0.0.1:6379> hget web google
(nil)

3、同时将多个 field-value (域-值)设置到哈希表 key 中:hmset

语法:hmset key field value [field value…]
说明:同时将多个 field-value (域-值)设置到哈希表 key 中,此命令会覆盖已经存在的 field, hash 表 key 不存在,创建空的 hash 表,执行 hmset.
返回值:设置成功返回 ok, 如果失败返回一个错误

例:同时设置多个 field-value

127.0.0.1:6379> hmset webs https://www.baidu.com https://www.google.com
OK

4、获取哈希表 key 中一个或多个给定域的值:hmget

语法:hmget key field [field…]
作用:获取哈希表 key 中一个或多个给定域的值
返回值:返回和 field 顺序对应的值,如果 field 不存在,
返回 nil
例:获取多个 field 的值

127.0.0.1:6379> hmget web baidu google
1) "http://www.baidu.com"
2) (nil)

5、获取哈希表 key 中所有的域和值:hgetall

语法:hgetall key
作用:获取哈希表 key 中所有的域和值
返回值:以列表形式返回 hash 中域和域的值 ,key 不存在,返回空 hash

例 1:返回 key 对应的所有域和值

127.0.0.1:6379> hgetall webs
1) "https://www.baidu.com"
2) "https://www.google.com"

例 2:不存在的 key,返回空列表

127.0.0.1:6379> hgetall websssss
(empty array)

6、删除哈希表 key 中的一个或多个指定域 field:hdel

语法:hdel key field [field…]
作用:删除哈希表 key 中的一个或多个指定域 field,不存在 field 直接忽略
返回值:成功删除的 field 的数量

例:删除指定的 field

127.0.0.1:6379> hdel web baidu
(integer) 1

7、查看哈希表 key 中的所有 field 域:hkeys

语法:hkeys key
作用:查看哈希表 key 中的所有 field 域
返回值:包含所有 field 的列表,key 不存在返回空列表

例:查看 website 所有的域名称

127.0.0.1:6379> hkeys webs
1) "https://www.baidu.com"

8、返回哈希表 中所有域的值:hvals

语法:hvals key
作用:返回哈希表 中所有域的值
返回值:包含哈希表所有域值的列表,key 不存在返回空列表

例:显示 website 哈希表所有域的值

127.0.0.1:6379> hset webs google https://www.google.com
(integer) 1
127.0.0.1:6379> hkeys webs
1) "https://www.baidu.com"
2) "google"

9、查看哈希表 key 中,给定域 field 是否存在:hexists

语法:hexists key field
作用:查看哈希表 key 中,给定域 field 是否存在
返回值:如果 field 存在,返回 1, 其他返回 0

例:查看存在 key 中 field 域是否存在

127.0.0.1:6379> hexists webs google
(integer) 1

list 数据类型操作命令(列表类型)

列表数据结构

1、将一个或多个值 value 插入到列表 key 的表头:lpush

语法:lpush key value [value…]
作用:将一个或多个值 value 插入到列表 key 的表头(最左边),从左边开始加入值,从左到右的顺序依次插入到表头
返回值:数字,新列表的长度

127.0.0.1:6379> lpush mylist a b c
(integer) 3
0

评论区