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
相关推荐
卓怡学长5 小时前
w204基于springbo旅行社签证代理服务系统
java·spring boot·spring·intellij-idea
泡海椒6 小时前
趋势分析报表:jquick-pdf折线图PDF生成实战
java·大数据·运维·服务器·前端·pdf
ServBay6 小时前
基于Jev的浏览器Agent插件狂揽 21k star,3分钟教你解放双手
后端·aigc·ai编程
nvd116 小时前
从存算一体到现代湖仓:对标传统关系型数据库透视 Bucket + Iceberg + Trino 的物理本质
数据库·bigdata
夕除6 小时前
redis--UV
redis
Json____6 小时前
家居装修 AI 智能咨询助手:让装修咨询从“大海捞针“变成“一问即答“
java·后端·vue3·it学习·wwwoop.com
vipxieliang6 小时前
ValidX 在微服务架构中的验证策略
java·spring boot
用户094248568036 小时前
第18章:ConcurrentHashMap与并发容器实战
java·jvm
JosieBook6 小时前
【数据库】MySQL 实战精通系列 · 第8篇:慢查询治理与性能优化实战
数据库·mysql·性能优化
小羊没烦恼!6 小时前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#