java操作redis多节点处理方式;http://blog.itpub.net/29254281/viewspace-1188644/
首先maven引入依赖包
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
</dependency>
/* *************************************************************** * 公司名称 :牛牛 * 系统名称 :问问系统 * 类 名 称 :RedisHelper * 功能描述 : redis缓存处理类 * 业务描述 : * 作 者 名 :@Author Royal * 开发日期 :2015-11-04 10:24 *************************************************************** * 修改日期 : * 修 改 者 : * 修改内容 : *************************************************************** */ package zhengxin.core; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.*; public class RedisHelper { //redis数据库连接池 private static Dictionary<Integer, JedisPool> pools = new Hashtable(); static { ResourceBundle bundle = ResourceBundle.getBundle("redis"); if (bundle == null) { throw new IllegalArgumentException( "[redis.properties] is not found!"); } JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(Integer.valueOf(bundle .getString("redis.pool.maxActive"))); config.setMaxIdle(Integer.valueOf(bundle .getString("redis.pool.maxIdle"))); config.setTestOnBorrow(Boolean.valueOf(bundle .getString("redis.pool.testOnBorrow"))); config.setTestOnReturn(Boolean.valueOf(bundle .getString("redis.pool.testOnReturn"))); //循环创建16个redis数据库连接池,存放在字典里面 for (int i = 0; i < 16; i++) { JedisPool item = new JedisPool(config, bundle.getString("redis.ip"), Integer.valueOf(bundle.getString("redis.port")), 0, bundle.getString("redis.password"), i); pools.put(i, item); } } /** * 直接返回redispool 方便灵活操作 * @param db 数据库序号 */ public static JedisPool getRedisPool(Integer db) { return pools.get(db); } /** * 设置数据 * @param key //key * @param value //值 * @param timeOut //过期时间 * @param db //数据库序号 */ public static void set(String key, String value, Integer timeOut, Integer db) { JedisPool poolItem = pools.get(db); Jedis jredis = poolItem.getResource(); if (timeOut > 0) { jredis.expire(key, timeOut); } jredis.set(key, value); poolItem.returnResourceObject(jredis); } /** * 获得hash型key某个字段的值 * @param key //key * @param field //hash字段 * @param db //数据库序号 * */ public static String getHashField(String key, String field, Integer db) { JedisPool poolItem = pools.get(db); Jedis jredis = poolItem.getResource(); String result = jredis.hget(key, field); poolItem.returnResourceObject(jredis); return result; } /** * 根据hashid获取Map 获得hash型key某个字段的值 * @param hashId //key键 * @param db //数据库序号 * */ public static Map<String, String> getHashValues(String hashId, Integer db) { JedisPool poolItem = pools.get(db); Jedis jredis = poolItem.getResource(); Map<String, String> result = jredis.hgetAll(hashId); poolItem.returnResourceObject(jredis); return result; } /** * 设置数据 * @param key //key * @param value //值 * @param field //hash字段 * @param db //数据库序号 */ public static void SetHashField(String key, String field, String value, Integer db) { JedisPool poolItem = pools.get(db); Jedis jredis = poolItem.getResource(); jredis.hset(key, field, value); poolItem.returnResourceObject(jredis); } /** * 获取数据 * @param key //key * @param db //数据库序号 */ public static String get(String key, Integer db) { JedisPool poolItem = pools.get(db); Jedis jredis = poolItem.getResource(); String result = jredis.get(key); poolItem.returnResourceObject(jredis); return result; } /** * 删除数据 * @param key //key * @param db //数据库序号 */ public static void del(String key, Integer db) { JedisPool poolItem = pools.get(db); Jedis jredis = poolItem.getResource(); Long result = jredis.del(key); poolItem.returnResourceObject(jredis); } /** * 队列插入数据 * @param key //键 * @param value //值 * @param db //数据库序号 */ public static void lpush(String key, String value, Integer db) { JedisPool poolItem = pools.get(db); Jedis jredis = poolItem.getResource(); jredis.lpush(key, value); poolItem.returnResourceObject(jredis); } /** * 队列取出数据 * @param key //键 * @param db //数据库序号 */ public static String lpop(String key, Integer db) { JedisPool poolItem = pools.get(db); Jedis jredis = poolItem.getResource(); String result = jredis.lpop(key); poolItem.returnResourceObject(jredis); return result; } /** * hash 获取键字段 * @param key //键 * @param field //hash字段 * @param db //数据库序号 */ public static String hget(String key, String field, Integer db) { JedisPool poolItem = pools.get(db); Jedis jredis = poolItem.getResource(); String result = jredis.hget(key, field); poolItem.returnResourceObject(jredis); return result; } /** * hash 删除键字段 * @param key //键 * @param field //hash字段 * @param db //数据库序号 * */ public static void hdel(String key, String field, Integer db) { JedisPool poolItem = pools.get(db); Jedis jredis = poolItem.getResource(); jredis.hdel(key, field); poolItem.returnResourceObject(jredis); } /** * 获取key下所有的值 * @param key //键 * @param db //数据库序号 * @return list */ public static List<String> llist(String key, Integer db) { JedisPool poolItem = pools.get(db); Jedis jredis = poolItem.getResource(); List<String> result = jredis.lrange(key, 0, -1); poolItem.returnResourceObject(jredis); return result; } }
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java的redis 操作类-优化通用版本 - Python技术站