Redis和RedisTemplate快速上手

文章目录

  • 前言
  • [1. 命令行中使用Redis](#1. 命令行中使用Redis)
    • 1.1启动服务和客户端
    • [1.2 数据结构](#1.2 数据结构)
      • [1.2.1 String](#1.2.1 String)
      • [1.2.2 Hash](#1.2.2 Hash)
      • [1.2.3 List](#1.2.3 List)
      • [1.2.4 Set](#1.2.4 Set)
      • [1.2.5 Zset](#1.2.5 Zset)
  • [2 SpringBoot 中 使用StringRedisTemplate](#2 SpringBoot 中 使用StringRedisTemplate)
    • [2.1 配置](#2.1 配置)
    • [2.2 RedisTemplate](#2.2 RedisTemplate)
    • [2.3 StringRedisTemplate](#2.3 StringRedisTemplate)

前言

学习redis命令行使用, SpringBoot中的RedisTemplate使用


1. 命令行中使用Redis

1.1启动服务和客户端

启动redis服务

找到Redis安装目录

bash 复制代码
redis-server.exe redis.windows.conf

启动redis命令行客户端

bash 复制代码
redis-cli

选择数据库0-15

bash 复制代码
select 1

1.2 数据结构

1.2.1 String

bash 复制代码
# 放入, 不带过期时间, 已有就覆盖
set name qinyuan
# 获取
get name
# 带过期时间放入
set name qinyuan ex 20
# 没有才设置成功
set name zhangfalin nx

1.2.2 Hash

存储简单对象, 实用性不如String

1.2.3 List

双向链表, 双端可出可进

用来做抢票

1.2.4 Set

唯一无序

提供交并集操作

1.2.5 Zset

可排序的set

2 SpringBoot 中 使用StringRedisTemplate

2.1 配置

配置redis和lettuce连接池

java 复制代码
spring:
  data:
    redis:
      host: 127.0.0.1
      port: 6379
#      password:  
      database: 1      
      lettuce:
        pool:
          max-active: 10
          max-idle: 10
          min-idle: 2
          max-wait: 3000ms 
        shutdown-timeout: 100ms 

2.2 RedisTemplate

redis的客户端:

除了命令行客户端, 还有RESP图形化客户端, 还有Java客户端

Java客户端常见的有Lettuce和Jedis, Redis启动依赖默认包含lettuce客户端, RedisTemplate 则是对redis的java客户端的更高级的封装

使用模板模式封装:把操作的通用、不变的核心步骤(如 "获取连接→发送命令→处理响应→释放连接→异常处理")封装在父类, 开放可变扩展点:把个性化、可变的部分(如 "执行 SET 命令" 还是 "执行 GET 命令")延迟到子类 / 方法调用时实现, 避免重复编码

2.3 StringRedisTemplate

RedisTemplate本身并不好用,原因如下:

  1. 使用JDK序列化器, 生成乱码,
  2. 只有Java能反序列化

日常用RedisTemplate的子类StringRedisTemplate, 配合FastJson2将对象高效序列化与反序列化

使用流程:

  1. 建议进一步封装为工具类,统一团队的序列化
  2. 编写redis前缀Enum枚举, 动态拼接key
相关推荐
六义义2 小时前
java基础十二
java·数据结构·算法
ʚB҉L҉A҉C҉K҉.҉基҉德҉^҉大3 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
哈__3 小时前
多模融合 一体替代:金仓数据库 KingbaseES 重构企业级统一数据基座
数据库·重构
老邓计算机毕设3 小时前
SSM医院病人信息管理系统e7f6b(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·医院信息化·ssm 框架·病人信息管理
毕设源码-钟学长3 小时前
【开题答辩全过程】以 基于SpringBoot的智能书城推荐系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
2601_949613023 小时前
flutter_for_openharmony家庭药箱管理app实战+药品分类实现
大数据·数据库·flutter
笨手笨脚の4 小时前
深入理解 Java 虚拟机-03 垃圾收集
java·jvm·垃圾回收·标记清除·标记复制·标记整理
莫问前路漫漫4 小时前
WinMerge v2.16.41 中文绿色版深度解析:文件对比与合并的全能工具
java·开发语言·python·jdk·ai编程
雨中飘荡的记忆4 小时前
Spring AI Gateway:从入门到实战,打造智能AI服务网关
人工智能·spring·gateway
九皇叔叔4 小时前
【03】SpringBoot3 MybatisPlus BaseMapper 源码分析
java·开发语言·mybatis·mybatis plus