redis 基础内容
redis命令不区分大小写。
1.设置键值对:
SET keyName value
键值对是大小写敏感的。如果键或值带有空格,需要用引号,双引号和单引号都可以。
2.获取值:
GET keyName
获取不存在的值时:
3.查看某些键是否存在:
EXISTS keyNameList
返回keyNameList中有几个键是存在的。
4.删除一个键值对:
DEL kayNameList
返回成功删除了几个键值对。
5.自增:
INCR keyName
只能自增数值(设置键值对时即使是用引号括起来的数值也算数值而不是字符串):
如果自增的值类型错误:
INCR自增不存在的键时,设置此键并将值设为1:
以下过程在一个人使用时结果等同于INCR count
:
x = GET count
x = x + 1
SET count x
但在多人使用时,会出现并发问题,而INCR是原子操作。redis的所有命令都是原子操作。
6.增加数值:
INCRBY keyName increment
只能增加数值。
当增加数值的键不存在时:
7.自减:
DECR keyName
如上图,也能自减不存在的键。
8.减少数值:
DECRBY keyName decrement
可以减少不存在的键:
9.设置键值对的生存时间:
EXPIRE keyName seconds
设置生存时间的五秒后获取该键值对:
不能给不存在的键值对设置生存时间:
不能给已经过期的键值对设置生存时间,第二条语句在a过期后发出:
10.获取键值对当前剩余的生效秒数:
TTL keyName
如果键值对已经失效,返回值为-2,上例设置完生存时间的100s后:
对不存在的键获取其生存时间,返回-2表示已经失效:
对永久有效的键值对获取其生存时间时返回-1:
SET一个键时,生存时间会重置:
在设置一个键时通过EX选项设置其生存时间:
11.将键值对的生存时间改为永久:
PERSIST keyName
对已经过期的键值对,该命令不起作用:
PEXPIRE和PTTL作用与EXPIRE和TTL相似,但它们返回值的单位是毫秒。
12.数据结构list是一系列有顺序的值。有一系列对list操作的函数。大多redis中的数据结构不用先创建就能直接使用这些函数操作。访问list的头尾附近是很快的。
13.向list中加入值:
RPUSH listName valueList
LPUSH listName valueList
list不能用get获取:
14.获取list中值:
LRANGE keyName start end
start和end表示list中的元素下标,从0开始计算下标,范围是两端闭区间。
end可以是负数,表示尾部的第几个元素,-1表示最后一个元素。
如果start或end超出元素范围:
15.删除list中的值
RPOP keyName
LPOP keyName
这两个命令删除值并将其返回,删除元素和将被元素返回到客户端是一个原子操作:
此时list中只有一个元素了:
16.获取list中的元素数:
LLEN keyName
17.set是另一个数据结构,其中存储的元素没有特定的顺序且每个元素只会出现一次。查看set中是否有给定元素非常快。
18.给set中增加元素:
SADD keyName valueList
该命令返回本次操作向集合中添加了几个元素:
向set中添加已有元素时返回0:
19.删除set中元素:
SREM keyName valueList
此命令返回值为被删除的元素数:
20.检查一个元素是否存在于set中:
SISMEMBER keyName value
21.返回set中的全部元素:
SMEMBERS keyName
22.返回多个set的并:
SUNION keyNameList
23.随机删除set中count个元素:
SPOP keyName count
此命令返回被删除的元素,由于set中的元素是无序的,因此被删除的元素也是无序的:
现在set中的元素:
24.随机返回set中的元素,count默认值为1:
SRANDMEMBER keyName count
如果count为负数,则可能会返回重复的元素:
如果count大于元素总数:
25.sorted set与set相比,其中的元素与一个分数相联系,分数用来排序整个sorted set。
26.向sorted set中添加元素:
ZADD keyName score value
27.查看sorted set中元素:
ZRANGE keyName start end withscores
28.hashes也是一种数据结构,它含多个string键值对,因此它适合存放对象。
29.向hashes中存放键值对:
HSET keyName key value
当hashes中不存在此键时,此命令会存放成功并返回1,否则返回0:
添加已经存在的键:
虽然hset返回值为0,但age值被修改了。
30.获取hashes中的值:
HGETALL keyName
31.同时设置hashes中的多个字段:
HMSET keyName field1 value1 field2 value2 ...
32.获取hashes中的单个字段值:
HGET keyName field
33.删除hashes中的一个字段:
HDEL keyName field
34.增加hashes中的一个数字字段值(increment可正可负):
HINCRBY kayName field increment
增加hashes中不存在的字段的值:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)