《权限系列》----用redis存储HashMap

2024-08-27 20:38

本文主要是介绍《权限系列》----用redis存储HashMap,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

  • 小编为了方便,用的是redis的单机版,redis服务器的搭建过程读者自己去百度吧,这里不多说了。

项目源码

点击这里,到github上下载项目的源码

spring配置文件中,redis的配置

<!-- 配置redis客户端单机版 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool"><constructor-arg name="host" value="192.168.141.128"></constructor-arg><constructor-arg name="port" value="6379"></constructor-arg>
</bean>
<!-- 配置redis客户端实现类 -->
<bean id="jedisClientSingle" class="com.spring.mybatis.componet.impl.JedisClientSingle"/>

jedis接口

public interface JedisClient {public String set(String key, String value);public String get(String key);public Long hset(String key, String item, String value);public String hget(String key, String item);public Long incr(String key);public Long decr(String key);public Long expire(String key, int second);public Long ttl(String key);public Long hdel(String key, String item);public String hmset(String key, Map<String,String> map);public List<String> hmget(String key,String filed);public Map<String, String> hgetAll(String key);
}

jedis实现类

public class JedisClientSingle implements JedisClient {@Autowiredprivate JedisPool jedisPool;@Overridepublic String hmset(String key, Map<String, String> map) {Jedis jedis = jedisPool.getResource();String result=jedis.hmset(key,map);jedis.close();return result;}@Overridepublic List<String> hmget(String key, String filed) {Jedis jedis = jedisPool.getResource();List<String> result=jedis.hmget(filed);jedis.close();return result;}@Overridepublic Map<String, String> hgetAll(String key) {Jedis jedis = jedisPool.getResource();Map<String, String> value;value = jedis.hgetAll(key );jedis.close();return  value;}@Overridepublic String set(String key, String value) {Jedis jedis = jedisPool.getResource();String result = jedis.set(key, value);if (jedis!=null){jedisPool.returnResource(jedis);}return result;}@Overridepublic String get(String key) {Jedis jedis = jedisPool.getResource();String result = jedis.get(key);if (jedis!=null){jedisPool.returnResource(jedis);}return result;}@Overridepublic Long hset(String key, String item, String value) {Jedis jedis = jedisPool.getResource();Long result = jedis.hset(key, item, value);if (jedis!=null){jedisPool.returnResource(jedis);}return result;}@Overridepublic String hget(String key, String item) {Jedis jedis = jedisPool.getResource();String result = jedis.hget(key, item);if (jedis!=null){jedisPool.returnResource(jedis);}return result;}@Overridepublic Long incr(String key) {Jedis jedis = jedisPool.getResource();Long result = jedis.incr(key);jedis.close();return result;}@Overridepublic Long decr(String key) {Jedis jedis = jedisPool.getResource();Long result = jedis.decr(key);jedis.close();return result;}@Overridepublic Long expire(String key, int second) {Jedis jedis = jedisPool.getResource();Long result = jedis.expire(key, second);jedis.close();return result;}@Overridepublic Long ttl(String key) {Jedis jedis = jedisPool.getResource();Long result = jedis.ttl(key);jedis.close();return result;}@Overridepublic Long hdel(String key, String item) {Jedis jedis = jedisPool.getResource();Long result = jedis.hdel(key, item);jedis.close();return result;}
}

小结

  • 小编用的Redis客户端的版本号是2.7.2,故可以用jedis.close()来归还资源,如果用的是低版本的那么必须用jedisPool.returnResource(jedis);来归还资源,要不程序运行一段时间后就会卡死。

这篇关于《权限系列》----用redis存储HashMap的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112721

相关文章

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

Redis Pipeline(管道) 详解

《RedisPipeline(管道)详解》Pipeline管道是Redis提供的一种批量执行命令的机制,通过将多个命令一次性发送到服务器并统一接收响应,减少网络往返次数(RTT),显著提升执行效率... 目录Redis Pipeline 详解1. Pipeline 的核心概念2. 工作原理与性能提升3. 核

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结