如何实现通用的Redis增删改查脚本
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,小编给大家分享一下如何实现通用的Redis增删改查脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.思考有哪些重复代码
千家信息网最后更新 2024年11月22日如何实现通用的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安全错误
数据库的锁怎样保障安全
mysql数据库索引模式
买服务器还要买数据库
知领 全球统计数据库
济南市都有什么软件开发公司
数据库渠道
智汇互联网科技
mysql数据库安全监测
软件开发有哪些税
数据库原理 数据 存储
葫芦岛服务器安全吗
有关服务器虚拟化技术综述文章
计算机4级数据库如何过
奉贤区高科技软件开发应用范围
鼎立服务器
朔州兼职软件开发
随着网络通信设施和网络技术
优农科技互联网
创新陌生交友软件开发
河南省发票服务器云空间
刷卡器数据库连接失败
mysql服务器 客户端
公安部 网络安全
聪者听于无声网络安全
区域链游戏网络技术
商品金额在数据库怎么表示
重庆基米互联网科技有限公司
网络安全宣传周绘画作品
软件开发项目管理ppt下载
定制网络技术直销价格
小学生网络安全利与弊