构造器的问题
来源:11-4 引入缓存技术之配置讲解
vvshyer
2017-10-28
这里提示需要构造器,老师给出的代码中并未提及。请问这里的构造器怎么写呢?
写回答
1回答
-
翔仔
2017-10-28
同学您好,构造器不需要写,这里它会自动去注入的哈,因为Strings和Keys是Jedis的内部类,所以需要先new出这个jedisUtil来,因此需要用到这个构造函数创建出外部类,但是不需要写入,以下是我的代码
package com.imooc.o2o.cache; import java.util.Set; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.util.SafeEncoder; public class JedisUtil { /** * 缓存生存时间 */ private final int expire = 60000; /** 操作Key的方法 */ public Keys KEYS; /** 对存储结构为String类型的操作 */ public Strings STRINGS; /** Redis连接池对象 */ private JedisPool jedisPool; /** * 获取redis连接池 * * @return */ public JedisPool getJedisPool() { return jedisPool; } /** * 设置redis连接池 * * @return */ public void setJedisPool(JedisPoolWriper jedisPoolWriper) { this.jedisPool = jedisPoolWriper.getJedisPool(); } /** * 从jedis连接池中获取获取jedis对象 * * @return */ public Jedis getJedis() { return jedisPool.getResource(); } // *******************************************Keys*******************************************// public class Keys { /** * 清空所有key */ public String flushAll() { Jedis jedis = getJedis(); String stata = jedis.flushAll(); jedis.close(); return stata; } /** * 删除keys对应的记录,可以是多个key * * @param String * ... keys * @return 删除的记录数 */ public long del(String... keys) { Jedis jedis = getJedis(); long count = jedis.del(keys); jedis.close(); return count; } /** * 判断key是否存在 * * @param String * key * @return boolean */ public boolean exists(String key) { // ShardedJedis sjedis = getShardedJedis(); Jedis sjedis = getJedis(); boolean exis = sjedis.exists(key); sjedis.close(); return exis; } /** * 查找所有匹配给定的模式的键 * * @param String * key的表达式,*表示多个,?表示一个 */ public Set<String> keys(String pattern) { Jedis jedis = getJedis(); Set<String> set = jedis.keys(pattern); jedis.close(); return set; } } // *******************************************Strings*******************************************// public class Strings { /** * 根据key获取记录 * * @param String * key * @return 值 */ public String get(String key) { // ShardedJedis sjedis = getShardedJedis(); Jedis sjedis = getJedis(); String value = sjedis.get(key); sjedis.close(); return value; } /** * 添加记录,如果记录已存在将覆盖原有的value * * @param String * key * @param String * value * @return 状态码 */ public String set(String key, String value) { return set(SafeEncoder.encode(key), SafeEncoder.encode(value)); } /** * 添加记录,如果记录已存在将覆盖原有的value * * @param byte[] * key * @param byte[] * value * @return 状态码 */ public String set(byte[] key, byte[] value) { Jedis jedis = getJedis(); String status = jedis.set(key, value); jedis.close(); return status; } } }
同学周末愉快
032018-01-20
相似问题