`
阅读更多

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/

1
2
分享到:
评论
2 楼 caoweichen520 2018-01-23  
StrUtils    你好这地方报错啊  这个里面的东西有吗
1 楼 蕃薯耀 2016-09-26  
Redis操作Hash工具类封装,Redis工具类封装

>>>>>>>>
蕃薯耀

相关推荐

    Redis操作字符串工具类封装,Redis工具类封装

    在Java开发中,为了方便与Redis进行交互,通常会封装一个工具类,本文将详细介绍如何封装一个基于Redis操作字符串的工具类。 在`RedisPoolUtils`这个类中,我们可以看到它是对Jedis或Lettuce等Redis客户端的进一步...

    go-redis 常用操作工具类封装

    本文将深入探讨`go-redis`库在实际应用中的常见操作及其工具类封装,帮助开发者更高效地利用这个强大的库。 首先,让我们了解一下`go-redis`的基本用法。`go-redis`的安装可以通过`go get`命令完成: ```bash go ...

    redis基本工具类

    标题"redis基本工具类"指的是一个包含了全面Redis操作的Java工具类库,能够帮助开发者便捷地处理字符串、列表、集合等数据结构。 在Redis中,主要的数据类型有以下几种: 1. 字符串(String):这是最基础的数据...

    Java操作Redis实例,操作封装

    有了连接池,我们就可以编写一系列的Redis操作方法,封装在自定义的RedisUtil工具类中。例如,设置键值对的方法: ```java public class RedisUtil { private static JedisPool jedisPool; static { jedisPool ...

    redis操作工具类

    在本项目中,我们将探讨如何在Spring Boot中优雅地集成Redis,并利用工具类进行高效的操作。 首先,集成Redis到Spring Boot应用中,我们需要在`pom.xml`或`build.gradle`中添加Redis的依赖,例如使用Spring Data ...

    最完整redis工具类_redis_Redist工具类_fewyit_redis工具类_

    Fewyit Redis工具类是为了简化Redis操作而设计的Java库,它封装了各种常见的Redis操作,使得在开发过程中能够更加便捷地与Redis进行交互。下面将详细介绍这个工具类的主要功能及其使用方法。 1. **连接管理** - `...

    Redis操作工具类.zip

    在Java开发中,为了方便地与Redis进行交互,通常会封装一个工具类(RedisUtil),以便于代码的复用和简化操作。这个压缩包包含了一个名为`RedisUtil`的Java工具类和一个`README.md`的介绍文档,下面将详细讲解这两个...

    Redis工具类,方便缓存读写

    这个“Redis工具类”就是为了简化Redis的读写操作而设计的,它能够帮助开发者更高效、更便捷地在应用程序中集成Redis功能。 Redis工具类通常包含以下关键功能: 1. **连接管理**:初始化和关闭与Redis服务器的连接...

    Redis可视化工具

    这些工具提供了图形化界面,使得用户可以直观地查看和操作Redis中的数据,进行键值的增删改查、设置过期时间、监控性能指标等操作。 标题提到的“Redis可视化工具”就是这样的辅助软件,它可以帮助IT管理员和开发者...

    redis集群连接及工具类DEMO

    【Redis集群连接及工具类DEMO】是一个Spring工程,它提供了与Redis集群交互的实例,同时也包含了一些实用的工具类,使得开发者能够更方便地在Java应用中使用Redis作为数据存储。这个DEMO的主要目标是展示如何配置和...

    redisUtils工具类的使用

    RedisUtils工具类是Java开发中常见的一种封装了Redis操作的工具类,主要用于简化Redis数据库的存取操作。Redis是一个高性能的键值存储系统,广泛应用于缓存、消息队列、分布式锁等多种场景。在实际开发中,为了提高...

    redis工具类

    基于spring和redis的redisTemplate工具类,包含hash,set,list三种集合的操作

    Redis客户端Java服务接口封装

    首先,`RedisClientTemplate`这个名字暗示它是一个模板类,它封装了Redis客户端的基本操作,为开发者提供了一种简洁、易于使用的接口。在Java中,我们通常使用Jedis或Lettuce作为Redis的客户端库。这里,我们假设`...

    redis工具类以及redis 连接池配置

    工具类中包括存放hash表键值对,键值对以map的方式储存,删除键值对,永久存放键值对,设置过期时间,需要的直接去gitHab上看https://github.com/1610220353/advancedGiants/tree/master/src/main

    redis工具类俩个 可选择使用

    综上所述,Redis工具类是简化Java应用与Redis交互的关键,它们封装了常见的操作,提高了开发效率和代码的可读性。在实际项目中,开发者可以根据需求选择或定制合适的工具类,以更好地利用Redis的强大功能。

    JAVA整合JEDIS操作访问Redis的工具类

    总之,`JAVA整合JEDIS操作访问Redis的工具类`通过Jedis库实现了与Redis服务器的交互,并通过`CacheUtils`工具类进一步封装了常用操作,降低了使用Redis的门槛。这使得开发者能够更专注于业务逻辑,而不是底层的连接...

    redis连接工具.zip

    总的来说,"redis连接工具.zip"可能是为了简化和优化Redis的日常管理而设计的实用工具,它可以帮助开发者更高效地操作Redis,提升开发和运维效率。在使用这样的工具时,需要注意版本兼容性,确保工具与运行的Redis...

    redis和spring整合

    为了整合Redis,我们需要引入Spring Data Redis模块,它提供了对Redis的高级API支持,简化了操作。 1. **集成依赖**: 在`pom.xml`文件中添加Spring Data Redis和Redis的连接池Jedis的依赖: ```xml &lt;groupId&gt;...

    C#redis操作类.rar

    总之,这个"C# redis操作类"是C#开发者的实用工具,它封装了StackExchange.Redis库的常用功能,可以帮助我们高效地在C#应用程序中集成Redis服务,实现数据缓存、分布式锁等高级功能。配合Windows版的Redis服务器,...

Global site tag (gtag.js) - Google Analytics