SpringBoot中常用的 Redis 命令实现

1) 设置键值对
java 复制代码
@Service
public class RedisService {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    // 设置键值对
    public void set(String key, String value) {
        redisTemplate.opsForValue().set(key, value);
    }
    
    // 获取值
    public String get(String key) {
        return (String) redisTemplate.opsForValue().get(key);
    }
}
2) 操作 Hash 类型
java 复制代码
@Service
public class RedisService {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    // 设置 Hash 值
    public void setHashValue(String hashKey, String field, String value) {
        redisTemplate.opsForHash().put(hashKey, field, value);
    }
    
    // 获取 Hash 值
    public String getHashValue(String hashKey, String field) {
        return (String) redisTemplate.opsForHash().get(hashKey, field);
    }
}
3) 操作 List 类型
java 复制代码
@Service
public class RedisService {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    // 左侧插入 List
    public void leftPushToList(String key, String value) {
        redisTemplate.opsForList().leftPush(key, value);
    }

    // 右侧插入 List
    public void rightPushToList(String key, String value) {
        redisTemplate.opsForList().rightPush(key, value);
    }

    // 获取 List
    public List<Object> getList(String key) {
        return redisTemplate.opsForList().range(key, 0, -1);
    }
}
4) 操作 Set 类型
java 复制代码
@Service
public class RedisService {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    // 添加元素到 Set
    public void addToSet(String key, String value) {
        redisTemplate.opsForSet().add(key, value);
    }

    // 获取 Set
    public Set<Object> getSet(String key) {
        return redisTemplate.opsForSet().members(key);
    }
}
5) 操作 Sorted Set (ZSet)
java 复制代码
@Service
public class RedisService {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    // 向 Sorted Set 中添加元素
    public void addToZSet(String key, String value, double score) {
        redisTemplate.opsForZSet().add(key, value, score);
    }

    // 获取 Sorted Set 中的元素
    public Set<Object> getZSet(String key) {
        return redisTemplate.opsForZSet().range(key, 0, -1);
    }
}
6) 删除键
java 复制代码
public void deleteKey(String key) {
    redisTemplate.delete(key);
}
7) 检查键是否存在
java 复制代码
public boolean hasKey(String key) {
    return redisTemplate.hasKey(key);
}
8) 设置键的过期时间
java 复制代码
public void setKeyExpiration(String key, long timeout) {
    redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
9) 获取键的过期时间
java 复制代码
public long getKeyExpiration(String key) {
    return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}

总结

通过 RedisTemplate ,Spring Boot 提供了对 Redis 常见数据类型(如 String, List, Set, Hash, ZSet)和命令的全面支持。您可以通过配置 Redis 连接信息、注入 **RedisTemplate**来轻松操作 Redis,进行高效的数据存取。

相关推荐
淘源码d13 分钟前
医学影像云PACS系统——PACS诊断工作站
java·源码·影像处理·医院管理系统·影像工作站·云pacs系统·dicom 标准通信
NiceCloud喜云1 小时前
Anthropic 一周三连发:Cowork 多端、Fable 5 按需付费、J-space 论文的技术解读
java·服务器·网络·人工智能·ai
SamDeepThinking1 小时前
组合还是继承?我在项目里主要看这两个判断
java·后端·面试
momo1 小时前
JAVA基础知识
java·开发语言
就叫_这个吧2 小时前
Activiti7工作流入门+案例应用
java·activiti7·工作流
Z_W_H_2 小时前
minikube start --driver=docker --memory=4000mb出现PROVIDER_DOCKER_NEWGRP
java·docker·minikube
折哥的程序人生 · 物流技术专研2 小时前
第3篇:手写促销策略引擎(满减、打折、立减)
java·设计模式·策略模式·开闭原则·编程实战·扩充系列·促销引擎
郑州光合科技余经理3 小时前
海外外卖平台源码改造实战——多语言核心代码实现
java·开发语言·前端·后端·mysql·架构·php
耀耀_很无聊3 小时前
12_Redis Lua 脚本踩坑:为什么 tonumber(ARGV[x]) 会得到 nil?
java·redis·lua
奶油话梅糖3 小时前
锐捷常用命令速查表
java·网络·windows