redis学习教程,springboot整合reidis,springboot整合redis遇到的问题
redis学习教程,springboot整合reidis,springboot整合redis遇到的问题
1、下载redis
https://github.com/tporadowski/redis/releases。
2、修改配置文件
3、启动redis
redis-server.exe redis.windows.conf
参考:https://blog.csdn.net/cwp964219374/article/details/140448830
4、启动客户端连接到redis
redis-cli.exe -h 127.0.0.1 -p 32822
5、redis数据类型
1、string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
SET runoob "菜鸟教程"
2、hash Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
HMSET runoob field1 "Hello" field2 "World"
3、Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
lpush runoob redis
lrange runoob 0 10
4、Redis 的 Set 是 string 类型的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
sadd key member
smembers runoob
5、zset(sorted set:有序集合)Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
zadd key score member
ZRANGEBYSCORE runoob 0 1000
6、redis命令
客户端基本语法:redis-cli
检测redis是否启动 ping
登录redis服务 redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
删除键 del key
Redis keys 命令
下表给出了与 Redis 键相关的基本命令:
序号 | 命令及描述 |
---|---|
1 | DEL key 该命令用于在 key 存在时删除 key。 |
2 | DUMP key 序列化给定 key ,并返回被序列化的值。 |
3 | EXISTS key 检查给定 key 是否存在。 |
4 | EXPIRE key seconds 为给定 key 设置过期时间,以秒计。 |
5 | EXPIREAT key timestamp EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。 |
6 | PEXPIRE key milliseconds 设置 key 的过期时间以毫秒计。 |
7 | PEXPIREAT key milliseconds-timestamp 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计 |
8 | KEYS pattern 查找所有符合给定模式( pattern)的 key 。 |
9 | MOVE key db 将当前数据库的 key 移动到给定的数据库 db 当中。 |
10 | PERSIST key 移除 key 的过期时间,key 将持久保持。 |
11 | PTTL key 以毫秒为单位返回 key 的剩余的过期时间。 |
12 | TTL key 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。 |
13 | RANDOMKEY 从当前数据库中随机返回一个 key 。 |
14 | RENAME key newkey 修改 key 的名称 |
15 | RENAMENX key newkey 仅当 newkey 不存在时,将 key 改名为 newkey 。 |
16 | SCAN cursor [MATCH pattern] [COUNT count] 迭代数据库中的数据库键。 |
17 | TYPE key 返回 key 所储存的值的类型。 |
数据存储结构
hash表
自增
type zhuge
object encoding zhuge
hash结构:
list结构:
set结构:
redis客户端连接池:lettuce和jedis、redis默认使用lettuce
需要引入依赖:
springboot默认使用的序列化是jdk序列化器
项目中需要自定义序列化器
工作中遇到的问题:存java对象序列号和反序列化
如果要存java对象,需要手动完成对象的序列号和反序列化。
正确做法:
总结:
7、企业实战案例
1、解决session共享问题
redis高级
8、redis持久化
rdb和aop
当满足一定条件,会异步的持久化数据
redis的rdb过程
aof持久
总结:redis的rdb和aop对比
学习参考视频:https://www.bilibili.com/video/BV1cr4y1671t?p=24&spm_id_from=pageDriver
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?