《权限系列》----用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

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训