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 分钟前
GitHub Copilot SDK 入门:五分钟构建你的第一个 AI Agent
java
百结2144 小时前
Mysql数据库操作
数据库·mysql·oracle
keep one's resolveY4 小时前
时区问题解决
数据库
Leinwin4 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
qq_417695054 小时前
机器学习与人工智能
jvm·数据库·python
漫随流水4 小时前
旅游推荐系统(view.py)
前端·数据库·python·旅游
薛定谔的悦4 小时前
MQTT通信协议业务层实现的完整开发流程
java·后端·mqtt·struts
ego.iblacat5 小时前
MySQL 服务基础
数据库·mysql
enjoy嚣士5 小时前
springboot之Exel工具类
java·spring boot·后端·easyexcel·excel工具类
罗超驿5 小时前
独立实现双向链表_LinkedList
java·数据结构·链表·linkedlist