Redis操作Hash工具类封装,Redis工具类封装
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2016年9月26日 16:28:23 星期一
http://fanshuyao.iteye.com/
Redis操作字符串工具类封装:http://fanshuyao.iteye.com/blog/2326221
Redis操作Hash工具类封装:http://fanshuyao.iteye.com/blog/2327134
Redis操作List工具类封装:http://fanshuyao.iteye.com/blog/2327137
Redis操作Set工具类封装:http://fanshuyao.iteye.com/blog/2327228
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
注:下面的代码只是方法封装,缺少一部分,因为是【Redis操作字符串工具类封装:http://fanshuyao.iteye.com/blog/2326221】的延续,把下面的代码增加到之前代码后面就可以了。
/**************************** redis Hash start***************************/ /***Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。***/ /** * 设置Hash的属性 * @param key * @param field * @param value * @return */ public static boolean hset(String key, String field, String value){ if(StrUtils.isBlank(key) || StrUtils.isBlank(field)){ return false; } Jedis jedis = jedisPool.getResource(); //If the field already exists, and the HSET just produced an update of the value, 0 is returned, //otherwise if a new field is created 1 is returned. Long statusCode = jedis.hset(key, field, value); jedis.close(); if(statusCode > -1){ return true; } return false; } /** * 批量设置Hash的属性 * @param key * @param fields * @param values * @return */ public static boolean hmset(String key, String[] fields, String[] values){ if(StrUtils.isBlank(key) || StrUtils.isEmptyArray(fields) || StrUtils.isEmptyArray(values)){ return false; } Jedis jedis = jedisPool.getResource(); Map<String, String> hash = new HashMap<String, String>(); for (int i=0; i<fields.length; i++) { hash.put(fields[i], values[i]); } String statusCode = jedis.hmset(key, hash); jedis.close(); if(SUCCESS_OK.equalsIgnoreCase(statusCode)){ return true; } return false; } /** * 批量设置Hash的属性 * @param key * @param map Map<String, String> * @return */ public static boolean hmset(String key, Map<String, String> map){ if(StrUtils.isBlank(key) || StrUtils.isEmptyMap(map)){ return false; } Jedis jedis = jedisPool.getResource(); String statusCode = jedis.hmset(key, map); jedis.close(); if(SUCCESS_OK.equalsIgnoreCase(statusCode)){ return true; } return false; } /** * 仅当field不存在时设置值,成功返回true * @param key * @param field * @param value * @return */ public static boolean hsetNX(String key, String field, String value){ if(StrUtils.isBlank(key) || StrUtils.isBlank(field)){ return false; } Jedis jedis = jedisPool.getResource(); //If the field already exists, 0 is returned, //otherwise if a new field is created 1 is returned. Long statusCode = jedis.hsetnx(key, field, value); jedis.close(); if(SUCCESS_STATUS_LONG == statusCode){ return true; } return false; } /** * 获取属性的值 * @param key * @param field * @return */ public static String hget(String key, String field){ if(StrUtils.isBlank(key) || StrUtils.isBlank(field)){ return null; } Jedis jedis = jedisPool.getResource(); String value = jedis.hget(key, field); jedis.close(); return value; } /** * 批量获取属性的值 * @param key * @param fields String... * @return */ public static List<String> hmget(String key, String... fields){ if(StrUtils.isBlank(key) || StrUtils.isNull(fields)){ return null; } Jedis jedis = jedisPool.getResource(); List<String> values = jedis.hmget(key, fields); jedis.close(); return values; } /** * 获取在哈希表中指定 key 的所有字段和值 * @param key * @return Map<String, String> */ public static Map<String, String> hgetAll(String key){ if(StrUtils.isBlank(key)){ return null; } Jedis jedis = jedisPool.getResource(); Map<String, String> map = jedis.hgetAll(key); jedis.close(); return map; } /** * 删除hash的属性 * @param key * @param fields * @return */ public static boolean hdel(String key, String... fields){ if(StrUtils.isBlank(key) || StrUtils.isNull(fields)){ return false; } Jedis jedis = jedisPool.getResource(); jedis.hdel(key, fields); jedis.close(); //System.out.println("statusCode="+statusCode); return true; } /** * 查看哈希表 key 中,指定的字段是否存在。 * @param key * @param field * @return */ public static boolean hexists(String key, String field){ if(StrUtils.isBlank(key) || StrUtils.isBlank(field)){ return false; } Jedis jedis = jedisPool.getResource(); boolean result = jedis.hexists(key, field); jedis.close(); return result; } /** * 为哈希表 key 中的指定字段的整数值加上增量 increment 。 * @param key * @param field * @param increment 正负数、0、正整数 * @return */ public static long hincrBy(String key, String field, long increment){ Jedis jedis = jedisPool.getResource(); long result = jedis.hincrBy(key, field, increment); jedis.close(); return result; } /** * 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。(注:如果field不存在时,会设置新的值) * @param key * @param field * @param increment,可以为负数、正数、0 * @return */ public static Double hincrByFloat(String key, String field, double increment){ Jedis jedis = jedisPool.getResource(); Double result = jedis.hincrByFloat(key, field, increment); jedis.close(); return result; } /** * 获取所有哈希表中的字段 * @param key * @return Set<String> */ public static Set<String> hkeys(String key){ Jedis jedis = jedisPool.getResource(); Set<String> result = jedis.hkeys(key); jedis.close(); return result; } /** * 获取哈希表中所有值 * @param key * @return List<String> */ public static List<String> hvals(String key){ Jedis jedis = jedisPool.getResource(); List<String> result = jedis.hvals(key); jedis.close(); return result; } /** * 获取哈希表中字段的数量,当key不存在时,返回0 * @param key * @return */ public static Long hlen(String key){ Jedis jedis = jedisPool.getResource(); Long result = jedis.hlen(key); jedis.close(); return result; } /** * 迭代哈希表中的键值对。 * @param key * @param cursor * @return ScanResult<Entry<String, String>> */ public static ScanResult<Entry<String, String>> hscan(String key, String cursor){ Jedis jedis = jedisPool.getResource(); ScanResult<Entry<String, String>> scanResult = jedis.hscan(key, cursor); jedis.close(); //System.out.println(scanResult.getResult()); return scanResult; } /**************************** redis Hash end***************************/
Redis操作字符串工具类封装:http://fanshuyao.iteye.com/blog/2326221
Redis操作Hash工具类封装:http://fanshuyao.iteye.com/blog/2327134
Redis操作List工具类封装:http://fanshuyao.iteye.com/blog/2327137
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2016年9月26日 16:28:23 星期一
http://fanshuyao.iteye.com/
相关推荐
在Java开发中,为了方便与Redis进行交互,通常会封装一个工具类,本文将详细介绍如何封装一个基于Redis操作字符串的工具类。 在`RedisPoolUtils`这个类中,我们可以看到它是对Jedis或Lettuce等Redis客户端的进一步...
本文将深入探讨`go-redis`库在实际应用中的常见操作及其工具类封装,帮助开发者更高效地利用这个强大的库。 首先,让我们了解一下`go-redis`的基本用法。`go-redis`的安装可以通过`go get`命令完成: ```bash go ...
标题"redis基本工具类"指的是一个包含了全面Redis操作的Java工具类库,能够帮助开发者便捷地处理字符串、列表、集合等数据结构。 在Redis中,主要的数据类型有以下几种: 1. 字符串(String):这是最基础的数据...
有了连接池,我们就可以编写一系列的Redis操作方法,封装在自定义的RedisUtil工具类中。例如,设置键值对的方法: ```java public class RedisUtil { private static JedisPool jedisPool; static { jedisPool ...
在本项目中,我们将探讨如何在Spring Boot中优雅地集成Redis,并利用工具类进行高效的操作。 首先,集成Redis到Spring Boot应用中,我们需要在`pom.xml`或`build.gradle`中添加Redis的依赖,例如使用Spring Data ...
Fewyit Redis工具类是为了简化Redis操作而设计的Java库,它封装了各种常见的Redis操作,使得在开发过程中能够更加便捷地与Redis进行交互。下面将详细介绍这个工具类的主要功能及其使用方法。 1. **连接管理** - `...
在Java开发中,为了方便地与Redis进行交互,通常会封装一个工具类(RedisUtil),以便于代码的复用和简化操作。这个压缩包包含了一个名为`RedisUtil`的Java工具类和一个`README.md`的介绍文档,下面将详细讲解这两个...
这个“Redis工具类”就是为了简化Redis的读写操作而设计的,它能够帮助开发者更高效、更便捷地在应用程序中集成Redis功能。 Redis工具类通常包含以下关键功能: 1. **连接管理**:初始化和关闭与Redis服务器的连接...
这些工具提供了图形化界面,使得用户可以直观地查看和操作Redis中的数据,进行键值的增删改查、设置过期时间、监控性能指标等操作。 标题提到的“Redis可视化工具”就是这样的辅助软件,它可以帮助IT管理员和开发者...
【Redis集群连接及工具类DEMO】是一个Spring工程,它提供了与Redis集群交互的实例,同时也包含了一些实用的工具类,使得开发者能够更方便地在Java应用中使用Redis作为数据存储。这个DEMO的主要目标是展示如何配置和...
RedisUtils工具类是Java开发中常见的一种封装了Redis操作的工具类,主要用于简化Redis数据库的存取操作。Redis是一个高性能的键值存储系统,广泛应用于缓存、消息队列、分布式锁等多种场景。在实际开发中,为了提高...
基于spring和redis的redisTemplate工具类,包含hash,set,list三种集合的操作
首先,`RedisClientTemplate`这个名字暗示它是一个模板类,它封装了Redis客户端的基本操作,为开发者提供了一种简洁、易于使用的接口。在Java中,我们通常使用Jedis或Lettuce作为Redis的客户端库。这里,我们假设`...
工具类中包括存放hash表键值对,键值对以map的方式储存,删除键值对,永久存放键值对,设置过期时间,需要的直接去gitHab上看https://github.com/1610220353/advancedGiants/tree/master/src/main
综上所述,Redis工具类是简化Java应用与Redis交互的关键,它们封装了常见的操作,提高了开发效率和代码的可读性。在实际项目中,开发者可以根据需求选择或定制合适的工具类,以更好地利用Redis的强大功能。
总之,`JAVA整合JEDIS操作访问Redis的工具类`通过Jedis库实现了与Redis服务器的交互,并通过`CacheUtils`工具类进一步封装了常用操作,降低了使用Redis的门槛。这使得开发者能够更专注于业务逻辑,而不是底层的连接...
总的来说,"redis连接工具.zip"可能是为了简化和优化Redis的日常管理而设计的实用工具,它可以帮助开发者更高效地操作Redis,提升开发和运维效率。在使用这样的工具时,需要注意版本兼容性,确保工具与运行的Redis...
为了整合Redis,我们需要引入Spring Data Redis模块,它提供了对Redis的高级API支持,简化了操作。 1. **集成依赖**: 在`pom.xml`文件中添加Spring Data Redis和Redis的连接池Jedis的依赖: ```xml <groupId>...
总之,这个"C# redis操作类"是C#开发者的实用工具,它封装了StackExchange.Redis库的常用功能,可以帮助我们高效地在C#应用程序中集成Redis服务,实现数据缓存、分布式锁等高级功能。配合Windows版的Redis服务器,...