Redis是一个key-value的数据库,key一般是String类型,value的类型是多种多样的。value具体类型如下图所示:
Redis通用命令是每一种数据类型都可以使用的命令。
redis> KEYS *name* 1) "firstname" 2) "lastname" redis> KEYS a?? 1) "age" redis> KEYS * 1) "firstname" 2) "age" 3) "lastname"
redis> SET key1 "Hello" "OK" redis> SET key2 "World" "OK" redis> DEL key1 key2 key3 (integer) 2
redis> SET key1 "Hello" "OK" redis> EXISTS key1 (integer) 1 redis> EXISTS nosuchkey (integer) 0 redis> SET key2 "World" "OK" redis> EXISTS key1 key2 nosuchkey (integer) 2
redis> SET mykey "Hello" "OK" redis> EXPIRE mykey 10 (integer) 1 redis> TTL mykey (integer) 10 redis> SET mykey "Hello World" "OK" redis> TTL mykey (integer) -1 redis> EXPIRE mykey 10 XX (integer) 0 redis> TTL mykey (integer) -1 redis> EXPIRE mykey 10 NX (integer) 1 redis> TTL mykey (integer) 10
redis> SET mykey "Hello" "OK" redis> EXPIRE mykey 10 (integer) 1 redis> TTL mykey (integer) 10
String类型,也就是字符串类型,是Redis中最简单的存储类型。Value是字符串根据格式不同又可以分为3类。
String:普通类型字符串
Int:整数类型,可以做自增、自减操作
Float:浮点类型,可以做自增、自减操作
不管是那种格式,底层都是字节数组形式存储,只不过是编码方式不同。字符串类型的最大空间不能超过512M。
常用命令:
Set name 张三
Get name
MSET name1 李四 name2 王五
MGET name1 name2
Set age 21 INCR age
INCRBY age 2
Set score 10.2 INCRBYFLOAT score 0.5
Setnx name 小张
SETEX name 10 jack
说明:Redis key的层级格式
Redis用key区分每一个数据,一般情况需要将各表相关信息存入Redis但是表格的唯一标识通常情况下都是用ID进行标识,如何区分多个表的呢?
Key的结构
Redis的key允许多个单词形成层级结构,多个单词之间用“:”隔开,格式如下:
项目名:业务名:类型:Id
格式并非固定,可以根据自己的需求进行调整。
Hash类型,也叫散列,其value是一个无序字典,类似于Java中的HashMap结构。
String结构是将对象序列化为Json字符串后存储的,当需要修改对象的某个字段时很不方便:
Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD。
HSET cxy:user:3 name Lucy HSET cxy:user:3 age 21
HGET cxy:user:3 name
HMSET cxy:user:4 name HanMeimei age 21
HMGET cxy:user:4 name age
HGETALL cxy:user:4
HKEYS cxy:user:4
HVALS cxy:user:4
HINCRBY cxy:user:4 age 3
HSETNX cxy:user:4 sex man
Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。
特征也与LinkedList类似:
有序
元素可以重复
插入和删除快
查询速度一般
常用来存储一个有序数据,例如:朋友圈点赞列表,评论列表。
List类型常用命令
LPUSH users 1 2 3
LPOP users
RPUSH users 4 5 6
RPOP users
LRANGE users 1 3
BLPOP users
Redis的Set结构与Java中的HashSet类似,可以看做是一个value为null的HashMap。因为也是一个hash表,因此具备与HashSet类似特征:
无序
元素不可重复
查找快
支持交集、并集、差集等功能。
Set类型常见命令:
SADD s1 a b c
SREM s1 a
SCARD s1
SISMEMBER s1 a SISMEMBER s1 b
SMEMBERS s1
Redis的SortedSet是一个可排序的集合,与Java中的TreeSet有些类似,但底层数据结构差别很大。SortedSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表加hash表。
SortedSet具备下列特性:
可排序
元素不重复
查询速度快
因为SortedSet的可排序特性,经常被用来实现排行榜这样的功能。
SortedSet类型常见命令:
ZADD stus 85 Jack 89 Lucy 82 Rose 95 Tom 78 Jerry 92 Amy 76 Miles
ZREM stus Tom
ZSCORE stus Rose
ZRANK stus Rose
ZCARD stus
ZCOUNT stus 0 80
ZINCRBY stus 2 Amy
ZRANGE stus 0 2
ZRANGEBYSCORE stus 0 80
注意:以上命令所有的排名默认都是升序的,如果要降序则在命令的Z后面添加REV即可。
- .net core WebApi使用Redis教程(二)Redis缓存应用基础讲解(838)
- Redis教程一、Redis基础讲解及windows下安装、配置说明(612)
- .net core WebApi使用Redis教程(一)Redis代替Session实现登录(520)
- .net core WebApi使用Redis教程(五)Redis缓存应用缓存击穿概念及解决办法(472)
- .net core WebApi使用Redis教程(三)Redis缓存应用缓存穿透概念及解决办法(459)
- Redis教程二、Redis数据结构及常用命令详细介绍(380)
- .net core WebApi使用Redis教程(四)Redis缓存应用缓存雪崩讲解(375)
- Redis教程三、一图读懂Redis企业应用场景(350)
- 2025年3月 (1)
- 2024年6月 (2)
- 2024年5月 (2)
- 2024年4月 (4)
- 2024年3月 (30)
- 2024年1月 (4)
- 2023年12月 (2)
- 2023年11月 (4)
- 2023年10月 (4)
- 2023年9月 (6)
- 2023年3月 (2)
- 2023年2月 (1)
- 2023年1月 (1)
- 2022年12月 (1)
- 2022年9月 (21)
- 2022年8月 (10)
- 2022年7月 (3)
- 2022年4月 (1)
- 2022年3月 (13)
- 2021年8月 (1)
- 2021年3月 (1)
- 2020年12月 (42)
- 2020年11月 (7)
- 2020年10月 (5)
- 2020年8月 (1)
- 2020年6月 (1)
- 2020年3月 (2)
- 2019年12月 (8)
- 2019年11月 (3)
- 2019年9月 (1)
- 2019年4月 (1)
- 2019年3月 (6)
- 2019年2月 (1)
- 2018年7月 (7)
- 1.asp.net mvc内微信pc端、H5、JsApi支付方式总结(5702)
- 2.各大搜索网站网站收录提交入口地址(3201)
- 3.Windows 10休眠文件更改存储位置(3163)
- 4.ECharts仪表盘实例及参数使用详解(3095)
- 5.windows 10安装myeclipse 10破解补丁cracker.jar、run.bat闪退解决办法(2991)
- 6.HTML5 WebSocket与C#建立Socket连接实现代码(2866)
- 7.华为鸿蒙系统清除微信浏览器缓存方法(2779)
- 8.CERT_HAS_EXPIRED错误如何解决(2245)
- 9.Js异步async、await关键字详细介绍(lambda表达式中使用async和await关键字)(2187)
- 10.HBuilder编辑器格式化代码(2118)