如何实现通用的Redis增删改查脚本
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下如何实现通用的Redis增删改查脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.思考有哪些重复代码
千家信息网最后更新 2025年12月02日如何实现通用的Redis增删改查脚本
小编给大家分享一下如何实现通用的Redis增删改查脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1.思考有哪些重复代码?
如果只是为了简单的增删改查,那么只需要告诉我是哪个类要进行序列化反序列化,告诉我key的前缀是什么,不就行了嘛?至于说过期时间,咱们这一次可以先不考虑,如果需要加上过期时间,也不是一件困难的事情,那么我们稍作思考,使用Java中的泛型,就可以得到下面的基础类:
2.基础服务类
public class BasicDataRedisService{ /** * Redis key prefix String * Redis中的key前缀 */ private String prefixString; private Class targetClass; @Autowired private StringRedisTemplate redisTemplate; public BasicDataRedisService(String prefixString, Class targetClass) { this.prefixString = prefixString; this.targetClass = targetClass; } // -------------------------以下为内部使用--------------------------------- protected String generateKey(String id) { return prefixString + "id:" + id; } protected T getByKey(String key) { T result = ValueRedisUtil.getRedisObject(redisTemplate, key, targetClass); return result; } protected boolean setByKey(String key, Object object) { return ValueRedisUtil.setRedisObject(redisTemplate, key, object); } protected boolean deleteByKey(String key) { return ValueRedisUtil.delRedis(redisTemplate, key); } // -------------------------以下对外提供--------------------------------- /** * 根据id获取 * * @param id * @return */ public T getById(String id) { String key = generateKey(id); return getByKey(key); } /** * 根据id刷新 * * @param data * @param id * @return */ public boolean setByModel(Object data, String id) { String key = generateKey(id); return setByKey(key, data); } /** * 根据id删除 * * @param id * @return */ public boolean deleteById(String id) { String key = generateKey(id); return deleteByKey(key); }}
3.自定义一个查询服务类
假设我们要查询用户,那么我们只需要这么写:
@Servicepublic class UserRedisServiceImpl extends BasicDataRedisService{ private static String PREFIX = "henbao:user:"; public UserRedisServiceImpl() { super(PREFIX, User.class); }}
4.思考这样写的弊端
虽然这样写节省了代码量,想要实现的便捷也能够实现,但是总觉得哪里有点不对劲,操作似乎还可以再骚一点。少年,如果你能有这样的想法,那么恭喜你,你对代码有更高的追求。我们现在写了两次类,写常量来表名Redis中的前缀是什么。我们在使用Spring的时候通常不是这样来告诉底层框架这些东西的,我们通常是使用注解吧?故,Redis Repositories 就登场了。
5.各有利弊
虽然这样写我们很开心,但是有一些开发人员希望redis中存储的内容与db层的Model完全一致,且修改数据库表结构后还会逆向生成覆盖一波……那么请你自己再开发一下,为Spring提交更加强大的代码吧!目前更建议单独有redis层model的使用此方式,当然了,注解扫描该有的问题它都有,大家处理的时候保持耐心即可。
以上是"如何实现通用的Redis增删改查脚本"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
代码
内容
前缀
篇文章
脚本
基础
序列
时候
时间
注解
开发
服务
查询
便捷
对劲
强大
一致
困难
耐心
不怎么
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器上的密码在哪里
手机未获取到服务器数据
数据库磁盘读写占用高
最常用的数据库类型是
软件开发财政评审
公安网络安全漏洞
汉得做软件开发
国家网络安全产业园海淀大楼
空间数据库的数据类型有哪些
中国流行软件开发
南昌理工大学软件开发学费
代理服务器设置 翻墙
徐州网络安全市场开拓计划
皖北经济技术学校网络安全教育
唐河网络安全
数据库创建和安装
博兴有软件开发有限公司吗
网络安全宣传周开幕在即
高新区名优软件开发预算
描述网络安全的模型
中国家庭网络安全大会
软件开发方向学什么好
做好网络安全风险隐患排查
久久服务器
爱奇艺网络技术中心
软件开发财政评审
在服务器上建共享网盘
服务器系统安全与维护 论文
set中的取得数据库
安全沙箱连接服务器失败