redis中string字符串类型常用命令
redis中string字符串类型常用命令
String是Redis最基本的类型,一个key对应一个value,一个Redis中字符串value最多可以是512M
String类型是二进制安全的,意味着Redis的string可以包含任何数据,比如jpg图片或者序列化的对象
下面介绍一些String类型的常用命令
- 添加键值对(当添加的key在数据库已经存在,会把已经存在的key覆盖):set key value,eg:
127.0.0.1:6379> set key1 value1
OK
127.0.0.1:6379> set key1 newValue1
OK
# 获取键值
127.0.0.1:6379> get key1
"newValue1"
- 添加键值对(只有当添加的key在数据库不存在时才添加):setnx key value,eg:
127.0.0.1:6379> get key1
"newValue1"
127.0.0.1:6379> setnx key1 newValue1-nx
(integer) 0
127.0.0.1:6379> get key1
"newValue1"
- 追加字符:append key value,eg:
127.0.0.1:6379> get key1
"newValue1"
# 返回结果是当前key对应的value长度
127.0.0.1:6379> append key1 -1
(integer) 11
127.0.0.1:6379> get key1
"newValue1-1"
- 获取key长度:strlen key,eg:
127.0.0.1:6379> get key1
"newValue1-1"
127.0.0.1:6379> strlen key1
(integer) 11
- key对应的value自增1(当value不是数字类型时会报错):incr key,eg:
127.0.0.1:6379> set key5 5
OK
127.0.0.1:6379> incr key5
(integer) 6
127.0.0.1:6379> get key5
"6"
127.0.0.1:6379> get key1
"newValue1"
127.0.0.1:6379> incr key1
(error) ERR value is not an integer or out of range
- key对应的value自减1(当value不是数字类型时会报错):decr key,eg:
127.0.0.1:6379> get key5
"6"
127.0.0.1:6379> decr key5
(integer) 5
127.0.0.1:6379> get key5
"5"
127.0.0.1:6379> get key1
"newValue1"
127.0.0.1:6379> decr key1
(error) ERR value is not an integer or out of range
- key对应的value增|减指定数值(只对类型为数字的value生效,当value不是数字类型时会报错):incrby|decrby key,eg:
127.0.0.1:6379> get key5
"5"
127.0.0.1:6379> incrby key5 7
(integer) 12
127.0.0.1:6379> get key5
"12"
127.0.0.1:6379> decrby key5 7
(integer) 5
127.0.0.1:6379> get key5
"5"
127.0.0.1:6379> get key1
"newValue1"
127.0.0.1:6379> incrby key1
(error) ERR wrong number of arguments for 'incrby' command
127.0.0.1:6379> decrby key1
(error) ERR wrong number of arguments for 'decrby' command
- 同时设置多个键值对(如果key存在则覆盖):mset key1 value1 key2 value2......,eg:
127.0.0.1:6379> mset key8 value8 key9 value9
OK
- 同时获取多个key对应的value:mget key1 key2 key3......,eg:
127.0.0.1:6379> mget key8 key9
1) "value8"
2) "value9"
- 同时设置多个键值对(如果key存在则失败,注意,是全部失败):msetnx key1 value1 key2 value2......,eg:
127.0.0.1:6379> msetnx key10 value10 key11 value11
(integer) 1
127.0.0.1:6379> mget key10 key11
1) "value10"
2) "value11"
127.0.0.1:6379> msetnx key10 value10-nx key11 value11-nx
(integer) 0
127.0.0.1:6379> mget key10 key11
1) "value10"
2) "value11"
- 获取value指定范围值(从0开始):getrange key 起始位置 结束位置,eg:
127.0.0.1:6379> set key12 value12
OK
127.0.0.1:6379> getrange key12 0 3
"valu"
# -1表示最后一个字符的位置
127.0.0.1:6379> getrange key12 0 -1
"value12"
- 从指定位置开始替换value:setrange key 起始位置 value,eg:
127.0.0.1:6379> get key12
"value12"
127.0.0.1:6379> setrange key12 2 hello
(integer) 7
127.0.0.1:6379> get key12
"vahello"
- 设置键值对的同时指定过期时间:setex key 过期时间 value,eg:
127.0.0.1:6379> setex key13 7 value13
OK
- 获取key对应的value,同时设置新的value:getset key value,eg:
127.0.0.1:6379> get key12
"vaaae12"
127.0.0.1:6379> getset key12 newValue12
"vaaae12"
127.0.0.1:6379> get key12
"newValue12"
记得快乐
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!