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" |
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 |
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" |
查询键值:
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" |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具