Java的redis 操作类-优化通用版本
java 操作 redis 多节点处理方式;http://blog.itpub.net/29254281/viewspace-1188644/
首先 maven 引入依赖包
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
</dependency>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 | /* *************************************************************** * 公司名称 :牛牛 * 系统名称 :问问系统 * 类 名 称 :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; } } |