redis的常用命令

windows 启动redis服务

先用管理员模式打开cmd,到redis的根目录,再输入下面的命令

windows 注册服务 (执行后就作为windows服务了)
redis-server --service-install redis.windows.conf 

windows 启动服务
redis-server --service-start

windows 停止服务
 redis-server --service-stop

 卸载redis服务
redis-server --service-uninstall

 

也可使用 下面命令启动

redis-server.exe redis.windows.conf 

输入之后,会显示如下界面:

查看 redis 是否启动

1
$ redis-cli

以上命令将打开以下终端:

1
redis 127.0.0.1:6379>

 127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。

1
2
redis 127.0.0.1:6379> ping
PONG

说明我们已经成功安装启动了redis

 

连接服务

redis-cli.exe -h 127.0.0.1 -p 6379


查询字符串

KEYS pattern 

查找所有匹配给定的模式的键,keys * 查看所有缓存的键

 

1
2
3
4
5
6
7
8
9
10
11
12
127.0.0.1:6379> GET db
(nil)
 #不存在
127.0.0.1:6379> SET db redis
OK
127.0.0.1:6379> GET db
"redis"
#查询成功127.0.0.1:6379> keys *
1) "key4"
2) "key3"
3) "sessionid"
4) "key2"
 
获取所有key的值
 
MGET key1 key2 key3 key4 
 
1
2
3
4
5
6
7
8
9
10
11
127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key4"
4) "db"
5) "sessionid"
127.0.0.1:6379> mget key8 key5 key4 db
1) "8"
2) "87"
3) "452"
4) "3"

 

获取指定key值的长度

STRLEN key

1
2
3
4
127.0.0.1:6379> get db
"123"
127.0.0.1:6379> strlen db
(integer) 3

 

设置 一个key 值
 
set key value
 
1
2
127.0.0.1:6379>  set db abc
OK

 

设置一个key的值,只有当key不存在时

SETNX key value

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key4"
4) "key9"
5) "db"
6) "sessionid"
127.0.0.1:6379> setnx key8 88
(integer) 0
127.0.0.1:6379> setnx key10 10
(integer) 1
127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key10"
4) "key4"
5) "key9"
6) "db"
7) "sessionid"
127.0.0.1:6379> get key10
"10"

 

设置key-value,并设置过期时间

 SETEX key seconds value

1
2
3
4
5
6
7
8
9
10
11
12
127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key10"
4) "key4"
5) "key9"
6) "db"
7) "sessionid"
127.0.0.1:6379> setex key10 10 20
OK
127.0.0.1:6379> ttl key10
(integer) -2

  

设置多个key 的值

MSET key1 value1  key2 value2 key3 value3 key4 value4 

如果key不存在 则设置一个新的key并赋值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key4"
4) "db"
5) "sessionid"
127.0.0.1:6379> mget key8 key5 key4 db
1) "8"
2) "87"
3) "452"
4) "3"
127.0.0.1:6379> mset key8 1 key5 5 key4 4 db 123
OK
127.0.0.1:6379> mget key8 key5 key4 db
1) "1"
2) "5"
3) "4"
4) "123"

  

设置多个key value,仅当key不存在时

MSETNX key1 value1 key2 value2 key3 value3 

MSETNX 只要有一个存在的key 则设置全部不成功

1
2
3
4
5
6
7
8
9
10
11
127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key4"
4) "key9"
5) "db"
6) "sessionid"
127.0.0.1:6379> msetnx key8 235 key10 58
(integer) 0
127.0.0.1:6379> msetnx key10 69 key11 11
(integer) 1

  

 

追加一个值到key上,返回追加后的value的大小

APPEND key value

 

1
2
3
4
5
6
127.0.0.1:6379> get key4
"4"
127.0.0.1:6379> append key4 52
(integer) 3
127.0.0.1:6379> get key4
"452"<br>

如果key 不存在 会新建一个key

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
127.0.0.1:6379> keys *
1) "key4"
2) "db"
3) "sessionid"
 
127.0.0.1:6379> append key5 57
(integer) 2
 
127.0.0.1:6379> keys *
1) "key5"
2) "key4"
3) "db"
4) "sessionid"
 
127.0.0.1:6379> get key5
"57"

 

重新设置key的value,并获取设置前的值  

GETSET key value

如果key不存在,则设置一个新的key,返回 nill

1
2
3
4
5
6
127.0.0.1:6379> get key5
"57"
127.0.0.1:6379> getset key5 87
"57"
127.0.0.1:6379> get key5
"87"

key不存在

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
127.0.0.1:6379> keys *
1) "key5"
2) "key4"
3) "db"
4) "sessionid"
127.0.0.1:6379> getset key8 8
(nil)
127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key4"
4) "db"
5) "sessionid"
127.0.0.1:6379> get key8
"8"

  

查询键值:
get key
1
2
3
127.0.0.1:6379> GET db
"redis"
#查询成功

 

 

查询列表中的元素

lrange key 0 -1

1
2
3
4
5
6
7
8
127.0.0.1:6379> lrange list_name  0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
#0 -1代表区间为第一个到最一个
#可见,在列表中有5个元素

  

删除指定的键值(一个或多个)

DEL key1 key2 
1
2
127.0.0.1:6379> del db userName
(integer) 2

 

导出key的值

dump key

如果 key 不存在,那么返回 nil。否则,返回序列化之后的值。

1
2
127.0.0.1:6379> dump token
"\x00\xc1\x95&\a\x002h\xcc\xbaxu=\xac"

  

 查询一个key是否存在

EXISTS key

如果 key 不存在,那么返回 0。否则,返回1

1
2
3
4
127.0.0.1:6379> exists redis
(integer) 0
127.0.0.1:6379> exists db
(integer) 1

 

设置key的有效时间(秒)

EXPIRE key time

 

1
2
127.0.0.1:6379> expire db 200
(integer) 1

  

获取key的有效时间(秒) 如果key不存在,返回 -2

ttl db

1
2
3
4
5
6
7
8
9
127.0.0.1:6379> expire db 20
(integer) 1
127.0.0.1:6379> ttl db
(integer) -2
 
127.0.0.1:6379> expire db 20000
(integer) 1
127.0.0.1:6379> ttl db
(integer) 19992

 

设置key的有效时间(毫秒)

PEXPIRE  key time

1
2
127.0.0.1:6379> pexpire db 2000
(integer) 1

 

获取key的有效毫秒数(毫秒)

PTTL key

1
2
3
4
5
6
7
8
9
127.0.0.1:6379> pexpire db 2000
(integer) 1
127.0.0.1:6379> pttl db
(integer) -2
 
127.0.0.1:6379> pexpire db 200000
(integer) 1
127.0.0.1:6379> pttl db
(integer) 194559

  

将一个key重命名

RENAME key newkey

如果该newkey已经存在了,那就用将被改名的key的value覆盖至与已存在老的newkey的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
127.0.0.1:6379> set key1 1
OK
127.0.0.1:6379> set key2 2
OK
127.0.0.1:6379> set key3 3
OK
127.0.0.1:6379> set key4 4
 
127.0.0.1:6379> keys *
1) "key1"
2) "key4"
3) "key3"
4) "sessionid"
5) "key2"
 
127.0.0.1:6379> rename key1 key2
OK
127.0.0.1:6379> keys *
1) "key4"
2) "key3"
3) "sessionid"
4) "key2"
 
127.0.0.1:6379> get key2
"1"
 
127.0.0.1:6379> rename key3 db
OK
127.0.0.1:6379> keys *
1) "key4"
2) "db"
3) "sessionid"
4) "key2"
 
127.0.0.1:6379> get db
"3"

  

重命名一个key


 RENAMENX key newkey

新的key必须是不存在的key

修改成功时,返回 1 。
如果 newkey 已经存在,返回 0 。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
127.0.0.1:6379> keys *
1) "key4"
2) "db"
3) "sessionid"
4) "key2"
 
127.0.0.1:6379> renamenx key2 db
(integer) 0
 
 
127.0.0.1:6379> renamenx key2 key8
(integer) 1
 
127.0.0.1:6379> keys *
1) "key8"
2) "key4"
3) "db"
4) "sessionid"
 
127.0.0.1:6379> get key8
"1"

 

返回一个随机的key  

RANDOMKEY

1
2
127.0.0.1:6379> randomkey
"key8"

获取key 的存储类型  

TYPE key

1
2
127.0.0.1:6379> type db
string

把key移动到另外一个数据库里 

 move key DBID 

 SELECT dbid  (选择不同的DB)

redis的DB一共有16个,从 0-15,默认是D0个,我们可以通过命令 SELECT dbid 选择不同的DB,比如select 1;select 15等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
127.0.0.1:6379> keys *
1) "key8"
2) "key4"
3) "db"
4) "sessionid"
127.0.0.1:6379> move key8 1
(integer) 1
127.0.0.1:6379> keys *
1) "key4"
2) "db"
3) "sessionid"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "key8"
127.0.0.1:6379[1]>

  

清除当前DB 数据(慎用)

FLUSHDB  清除当前DB里的所有数据

FLUSHALL  清除所有的DB里的所有数据

1
2
3
4
5
6
7
8
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "key8"
127.0.0.1:6379[1]> flushdb
OK
127.0.0.1:6379[1]> keys *
(empty list or set)

  

 key 值 加1操作

INCR key

key值必须为64位有符号整型数据   

如果key的值不是整数,则报错(error)   如果指定的key不存在,则在执行incr操作之前,会将他的值设为0

1
2
3
4
5
6
7
8
9
10
11
127.0.0.1:6379> get key8
"1"
127.0.0.1:6379> incr key8
(integer) 2
127.0.0.1:6379> get key8
"2"
 
127.0.0.1:6379> get key5
"abc"
127.0.0.1:6379> incr key5
(error) ERR value is not an integer or out of range

  

key值增加一个整数

INCRBY key increment

key值必须为64位有符号整型数据 

如果key的值不是整数,则报错(error)   如果指定的key不存在,则在执行incr操作之前,会将他的值设为0

1
2
3
4
5
6
7
8
9
10
127.0.0.1:6379> get key8
"2"
127.0.0.1:6379> incrby key8 20
(integer) 22
127.0.0.1:6379> get key8
"22"
127.0.0.1:6379> get key5
"abc"
127.0.0.1:6379> incrby key5 20
(error) ERR value is not an integer or out of range

key值减1

DECR key

 key值必须为64位有符号整型数据

如果key的值不是整数,则报错(error)   如果指定的key不存在,则在执行incr操作之前,会将他的值设为0

1
2
3
4
5
6
127.0.0.1:6379> get key8
"22"
127.0.0.1:6379> decr key8
(integer) 21
127.0.0.1:6379> get key8
"21"

key值减去一个整数

DECRBY key increment

key值必须为64位有符号整型数据

如果key的值不是整数,则报错(error)   如果指定的key不存在,则在执行incr操作之前,会将他的值设为0

1
2
3
4
5
6
127.0.0.1:6379> get key8
"21"
127.0.0.1:6379> decrby key8 10
(integer) 11
127.0.0.1:6379> get key8
"11"

  

 

posted @   webnote  阅读(482)  评论(0编辑  收藏  举报
编辑推荐:
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
阅读排行:
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具
点击右上角即可分享
微信分享提示