Redis客户端之Spring整合Jedis
1.下载相关jar包,并引入工程:
jedis-2.4.2.jar
commons-pool2-2.0.jar
2.将以下XML配置引入spring
- <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">
 - <constructor-arg index="0" ref="jedisPoolConfig"/>
 - <constructor-arg index="1">
 - <list>
 - <bean name="slaver" class="redis.clients.jedis.JedisShardInfo">
 - <constructor-arg index="0" value="${redis.slaver.host}"/>
 - <constructor-arg index="1" value="${redis.slaver.port}" type="int"/>
 - </bean>
 - <bean name="master" class="redis.clients.jedis.JedisShardInfo">
 - <constructor-arg index="0" value="${redis.master.host}"/>
 - <constructor-arg index="1" value="${redis.master.port}" type="int"/>
 - </bean>
 - </list>
 - </constructor-arg>
 - </bean>
 - <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
 - <property name="maxTotal" value="2048" />
 - <property name="maxIdle" value="200" />
 - <property name="numTestsPerEvictionRun" value="1024"/>
 - <property name="timeBetweenEvictionRunsMillis" value="30000" />
 - <property name="minEvictableIdleTimeMillis" value="-1" />
 - <property name="softMinEvictableIdleTimeMillis" value="10000" />
 - <property name="maxWaitMillis" value="1500"/>
 - <property name="testOnBorrow" value="true" />
 - <property name="testWhileIdle" value="true"/>
 - <property name="testOnReturn" value="false"/>
 - <property name="jmxEnabled" value="true"/>
 - <property name="jmxNamePrefix" value="youyuan"/>
 - <property name="blockWhenExhausted" value="false"/>
 - </bean>
 
3.将shardedJedisPool注入相关的类中即可使用
- @Resource
 - private ShardedJedisPool shardedJedisPool;
 - /**
 - * 设置一个key的过期时间(单位:秒)
 - * @param key key值
 - * @param seconds 多少秒后过期
 - * @return 1:设置了过期时间 0:没有设置过期时间/不能设置过期时间
 - */
 - public long expire(String key, int seconds) {
 - if (key==null || key.equals("")) {
 - return 0;
 - }
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.expire(key, seconds);
 - } catch (Exception ex) {
 - logger.error("EXPIRE error[key=" + key + " seconds=" + seconds + "]" + ex.getMessage(), ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return 0;
 - }
 - /**
 - * 设置一个key在某个时间点过期
 - * @param key key值
 - * @param unixTimestamp unix时间戳,从1970-01-01 00:00:00开始到现在的秒数
 - * @return 1:设置了过期时间 0:没有设置过期时间/不能设置过期时间
 - */
 - public long expireAt(String key, int unixTimestamp) {
 - if (key==null || key.equals("")) {
 - return 0;
 - }
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.expireAt(key, unixTimestamp);
 - } catch (Exception ex) {
 - logger.error("EXPIRE error[key=" + key + " unixTimestamp=" + unixTimestamp + "]" + ex.getMessage(), ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return 0;
 - }
 - /**
 - * 截断一个List
 - * @param key 列表key
 - * @param start 开始位置 从0开始
 - * @param end 结束位置
 - * @return 状态码
 - */
 - public String trimList(String key, long start, long end) {
 - if (key == null || key.equals("")) {
 - return "-";
 - }
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.ltrim(key, start, end);
 - } catch (Exception ex) {
 - logger.error("LTRIM 出错[key=" + key + " start=" + start + " end=" + end + "]" + ex.getMessage() , ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return "-";
 - }
 - /**
 - * 检查Set长度
 - * @param key
 - * @return
 - */
 - public long countSet(String key){
 - if(key == null ){
 - return 0;
 - }
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.scard(key);
 - } catch (Exception ex) {
 - logger.error("countSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return 0;
 - }
 - /**
 - * 添加到Set中(同时设置过期时间)
 - * @param key key值
 - * @param seconds 过期时间 单位s
 - * @param value
 - * @return
 - */
 - public boolean addSet(String key,int seconds, String... value) {
 - boolean result = addSet(key, value);
 - if(result){
 - long i = expire(key, seconds);
 - return i==1;
 - }
 - return false;
 - }
 - /**
 - * 添加到Set中
 - * @param key
 - * @param value
 - * @return
 - */
 - public boolean addSet(String key, String... value) {
 - if(key == null || value == null){
 - return false;
 - }
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - shardedJedis.sadd(key, value);
 - return true;
 - } catch (Exception ex) {
 - logger.error("setList error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return false;
 - }
 - /**
 - * @param key
 - * @param value
 - * @return 判断值是否包含在set中
 - */
 - public boolean containsInSet(String key, String value) {
 - if(key == null || value == null){
 - return false;
 - }
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.sismember(key, value);
 - } catch (Exception ex) {
 - logger.error("setList error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return false;
 - }
 - /**
 - * 获取Set
 - * @param key
 - * @return
 - */
 - public Set<String> getSet(String key){
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.smembers(key);
 - } catch (Exception ex) {
 - logger.error("getList error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return null;
 - }
 - /**
 - * 从set中删除value
 - * @param key
 - * @return
 - */
 - public boolean removeSetValue(String key,String... value){
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - shardedJedis.srem(key, value);
 - return true;
 - } catch (Exception ex) {
 - logger.error("getList error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return false;
 - }
 - /**
 - * 从list中删除value 默认count 1
 - * @param key
 - * @param values 值list
 - * @return
 - */
 - public int removeListValue(String key,List<String> values){
 - return removeListValue(key, 1, values);
 - }
 - /**
 - * 从list中删除value
 - * @param key
 - * @param count
 - * @param values 值list
 - * @return
 - */
 - public int removeListValue(String key,long count,List<String> values){
 - int result = 0;
 - if(values != null && values.size()>0){
 - for(String value : values){
 - if(removeListValue(key, count, value)){
 - result++;
 - }
 - }
 - }
 - return result;
 - }
 - /**
 - * 从list中删除value
 - * @param key
 - * @param count 要删除个数
 - * @param value
 - * @return
 - */
 - public boolean removeListValue(String key,long count,String value){
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - shardedJedis.lrem(key, count, value);
 - return true;
 - } catch (Exception ex) {
 - logger.error("getList error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return false;
 - }
 - /**
 - * 截取List
 - * @param key
 - * @param start 起始位置
 - * @param end 结束位置
 - * @return
 - */
 - public List<String> rangeList(String key, long start, long end) {
 - if (key == null || key.equals("")) {
 - return null;
 - }
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.lrange(key, start, end);
 - } catch (Exception ex) {
 - logger.error("rangeList 出错[key=" + key + " start=" + start + " end=" + end + "]" + ex.getMessage() , ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return null;
 - }
 - /**
 - * 检查List长度
 - * @param key
 - * @return
 - */
 - public long countList(String key){
 - if(key == null ){
 - return 0;
 - }
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.llen(key);
 - } catch (Exception ex) {
 - logger.error("countList error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return 0;
 - }
 - /**
 - * 添加到List中(同时设置过期时间)
 - * @param key key值
 - * @param seconds 过期时间 单位s
 - * @param value
 - * @return
 - */
 - public boolean addList(String key,int seconds, String... value){
 - boolean result = addList(key, value);
 - if(result){
 - long i = expire(key, seconds);
 - return i==1;
 - }
 - return false;
 - }
 - /**
 - * 添加到List
 - * @param key
 - * @param value
 - * @return
 - */
 - public boolean addList(String key, String... value) {
 - if(key == null || value == null){
 - return false;
 - }
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - shardedJedis.lpush(key, value);
 - return true;
 - } catch (Exception ex) {
 - logger.error("setList error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return false;
 - }
 - /**
 - * 添加到List(只新增)
 - * @param key
 - * @param value
 - * @return
 - */
 - public boolean addList(String key, List<String> list) {
 - if(key == null || list == null || list.size() == 0){
 - return false;
 - }
 - for(String value : list){
 - addList(key, value);
 - }
 - return true;
 - }
 - /**
 - * 获取List
 - * @param key
 - * @return
 - */
 - public List<String> getList(String key){
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.lrange(key, 0, -1);
 - } catch (Exception ex) {
 - logger.error("getList error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return null;
 - }
 - /**
 - * 设置HashSet对象
 - *
 - * @param domain 域名
 - * @param key 键值
 - * @param value Json String or String value
 - * @return
 - */
 - public boolean setHSet(String domain, String key, String value) {
 - if (value == null) return false;
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - shardedJedis.hset(domain, key, value);
 - return true;
 - } catch (Exception ex) {
 - logger.error("setHSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return false;
 - }
 - /**
 - * 获得HashSet对象
 - *
 - * @param domain 域名
 - * @param key 键值
 - * @return Json String or String value
 - */
 - public String getHSet(String domain, String key) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.hget(domain, key);
 - } catch (Exception ex) {
 - logger.error("getHSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return null;
 - }
 - /**
 - * 删除HashSet对象
 - *
 - * @param domain 域名
 - * @param key 键值
 - * @return 删除的记录数
 - */
 - public long delHSet(String domain, String key) {
 - ShardedJedis shardedJedis = null;
 - long count = 0;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - count = shardedJedis.hdel(domain, key);
 - } catch (Exception ex) {
 - logger.error("delHSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return count;
 - }
 - /**
 - * 删除HashSet对象
 - *
 - * @param domain 域名
 - * @param key 键值
 - * @return 删除的记录数
 - */
 - public long delHSet(String domain, String... key) {
 - ShardedJedis shardedJedis = null;
 - long count = 0;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - count = shardedJedis.hdel(domain, key);
 - } catch (Exception ex) {
 - logger.error("delHSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return count;
 - }
 - /**
 - * 判断key是否存在
 - *
 - * @param domain 域名
 - * @param key 键值
 - * @return
 - */
 - public boolean existsHSet(String domain, String key) {
 - ShardedJedis shardedJedis = null;
 - boolean isExist = false;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - isExist = shardedJedis.hexists(domain, key);
 - } catch (Exception ex) {
 - logger.error("existsHSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return isExist;
 - }
 - /**
 - * 全局扫描hset
 - *
 - * @param match field匹配模式
 - * @return
 - */
 - public List<Map.Entry<String, String>> scanHSet(String domain, String match) {
 - ShardedJedis shardedJedis = null;
 - try {
 - int cursor = 0;
 - shardedJedis = shardedJedisPool.getResource();
 - ScanParams scanParams = new ScanParams();
 - scanParams.match(match);
 - Jedis jedis = shardedJedis.getShard(domain);
 - ScanResult<Map.Entry<String, String>> scanResult;
 - List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>();
 - do {
 - scanResult = jedis.hscan(domain, String.valueOf(cursor), scanParams);
 - list.addAll(scanResult.getResult());
 - cursor = Integer.parseInt(scanResult.getStringCursor());
 - } while (cursor > 0);
 - return list;
 - } catch (Exception ex) {
 - logger.error("scanHSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return null;
 - }
 - /**
 - * 返回 domain 指定的哈希集中所有字段的value值
 - *
 - * @param domain
 - * @return
 - */
 - public List<String> hvals(String domain) {
 - ShardedJedis shardedJedis = null;
 - List<String> retList = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - retList = shardedJedis.hvals(domain);
 - } catch (Exception ex) {
 - logger.error("hvals error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return retList;
 - }
 - /**
 - * 返回 domain 指定的哈希集中所有字段的key值
 - *
 - * @param domain
 - * @return
 - */
 - public Set<String> hkeys(String domain) {
 - ShardedJedis shardedJedis = null;
 - Set<String> retList = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - retList = shardedJedis.hkeys(domain);
 - } catch (Exception ex) {
 - logger.error("hkeys error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return retList;
 - }
 - /**
 - * 返回 domain 指定的哈希key值总数
 - *
 - * @param domain
 - * @return
 - */
 - public long lenHset(String domain) {
 - ShardedJedis shardedJedis = null;
 - long retList = 0;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - retList = shardedJedis.hlen(domain);
 - } catch (Exception ex) {
 - logger.error("hkeys error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return retList;
 - }
 - /**
 - * 设置排序集合
 - *
 - * @param key
 - * @param score
 - * @param value
 - * @return
 - */
 - public boolean setSortedSet(String key, long score, String value) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - shardedJedis.zadd(key, score, value);
 - return true;
 - } catch (Exception ex) {
 - logger.error("setSortedSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return false;
 - }
 - /**
 - * 获得排序集合
 - *
 - * @param key
 - * @param startScore
 - * @param endScore
 - * @param orderByDesc
 - * @return
 - */
 - public Set<String> getSoredSet(String key, long startScore, long endScore, boolean orderByDesc) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - if (orderByDesc) {
 - return shardedJedis.zrevrangeByScore(key, endScore, startScore);
 - } else {
 - return shardedJedis.zrangeByScore(key, startScore, endScore);
 - }
 - } catch (Exception ex) {
 - logger.error("getSoredSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return null;
 - }
 - /**
 - * 计算排序长度
 - *
 - * @param key
 - * @param startScore
 - * @param endScore
 - * @return
 - */
 - public long countSoredSet(String key, long startScore, long endScore) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - Long count = shardedJedis.zcount(key, startScore, endScore);
 - return count == null ? 0L : count;
 - } catch (Exception ex) {
 - logger.error("countSoredSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return 0L;
 - }
 - /**
 - * 删除排序集合
 - *
 - * @param key
 - * @param value
 - * @return
 - */
 - public boolean delSortedSet(String key, String value) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - long count = shardedJedis.zrem(key, value);
 - return count > 0;
 - } catch (Exception ex) {
 - logger.error("delSortedSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return false;
 - }
 - /**
 - * 获得排序集合
 - *
 - * @param key
 - * @param startRange
 - * @param endRange
 - * @param orderByDesc
 - * @return
 - */
 - public Set<String> getSoredSetByRange(String key, int startRange, int endRange, boolean orderByDesc) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - if (orderByDesc) {
 - return shardedJedis.zrevrange(key, startRange, endRange);
 - } else {
 - return shardedJedis.zrange(key, startRange, endRange);
 - }
 - } catch (Exception ex) {
 - logger.error("getSoredSetByRange error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return null;
 - }
 - /**
 - * 获得排序打分
 - *
 - * @param key
 - * @return
 - */
 - public Double getScore(String key, String member) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.zscore(key, member);
 - } catch (Exception ex) {
 - logger.error("getSoredSet error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return null;
 - }
 - public boolean set(String key, String value, int second) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - shardedJedis.setex(key, second, value);
 - return true;
 - } catch (Exception ex) {
 - logger.error("set error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return false;
 - }
 - public boolean set(String key, String value) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - shardedJedis.set(key, value);
 - return true;
 - } catch (Exception ex) {
 - logger.error("set error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return false;
 - }
 - public String get(String key, String defaultValue) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.get(key) == null?defaultValue:shardedJedis.get(key);
 - } catch (Exception ex) {
 - logger.error("get error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return defaultValue;
 - }
 - public boolean del(String key) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - shardedJedis.del(key);
 - return true;
 - } catch (Exception ex) {
 - logger.error("del error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return false;
 - }
 - public long incr(String key) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.incr(key);
 - } catch (Exception ex) {
 - logger.error("incr error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return 0;
 - }
 - public long decr(String key) {
 - ShardedJedis shardedJedis = null;
 - try {
 - shardedJedis = shardedJedisPool.getResource();
 - return shardedJedis.decr(key);
 - } catch (Exception ex) {
 - logger.error("incr error.", ex);
 - returnBrokenResource(shardedJedis);
 - } finally {
 - returnResource(shardedJedis);
 - }
 - return 0;
 - }
 - private void returnBrokenResource(ShardedJedis shardedJedis) {
 - try {
 - shardedJedisPool.returnBrokenResource(shardedJedis);
 - } catch (Exception e) {
 - logger.error("returnBrokenResource error.", e);
 - }
 - }
 - private void returnResource(ShardedJedis shardedJedis) {
 - try {
 - shardedJedisPool.returnResource(shardedJedis);
 - } catch (Exception e) {
 - logger.error("returnResource error.", e);
 - }
 - }
 
Redis客户端之Spring整合Jedis的更多相关文章
- Redis客户端之Spring整合Jedis,ShardedJedisPool集群配置
		
Jedis设计 Jedis作为推荐的java语言redis客户端,其抽象封装为三部分: 对象池设计:Pool,JedisPool,GenericObjectPool,BasePoolableObjec ...
 - redis集群配置,spring整合jedis,缓存同步
		
前台的商品数据(图片等加载缓慢)查询,先从redis缓存查询数据. redis是一个nosql数据库,内存版数据库,读取速度11w/s.本身具有内存淘汰机制,是单线程服务器(分时操作系统),线程安全. ...
 - SpringBoot开发二十-Redis入门以及Spring整合Redis
		
安装 Redis,熟悉 Redis 的命令以及整合Redis,在Spring 中使用Redis. 代码实现 Redis 内置了 16 个库,索引是 0-15 ,默认选择第 0 个 Redis 的常用命 ...
 - 用BIO手写实现Redis客户端的探究(拒绝Jedis)
		
在Redis的使用过程中,大多数人都是使用现成的客户端,如Jedis,Redisson,Lettuce.因此本文研究用BIO的方式手写Redis客户端尝试,对遇到的问题进行探究及总结. Redis通讯 ...
 - SpringBoot开发二十四-Redis入门以及Spring整合Redis
		
需求介绍 安装 Redis,熟悉 Redis 的命令以及整合Redis,在Spring 中使用Redis. 代码实现 Redis 内置了 16 个库,索引是 0-15 ,默认选择第 0 个 Redis ...
 - spring整合jedis时所遇问题
		
@Test public void testSpringJedisPool(){ ApplicationContext ac = new ClassPathXmlApplicationContext( ...
 - Redis客户端开发包:Jedis学习-高级应用
		
事务 Jedis中事务的写法是将redis操作写在事物代码块中,如下所示,multi与exec之间为具体的事务. jedis.watch (key1, key2, ...); Transaction ...
 - Redis客户端开发包:Jedis学习-入门
		
添加Jedis依赖 我们可以使用以下三种方式来添加Jedis依赖. 1.下载jar文件 从http://search.maven.org/下载最近的jedis包和Apache Commons Pool ...
 - Spring整合jedis 集群模式
		
引入jedis依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...
 
随机推荐
- 如何设置修改WPS批注上的用户信息名称
			
http://jingyan.baidu.com/article/6b18230953cec7ba59e1596b.html 点击左上角的“WPS文字”: 选择“选项”: 点击“用户信息”: ...
 - jquery是如何清除ajax缓存的
			
大家都知道万恶的IE在ajax中往往只读取第一次ajax请求时候的数据,其余时候都是从cache提取数据,(太懒了T_T).原生的JS清除ajax缓存的方法多,但是终觉有点繁琐,如果是用jquery的 ...
 - No.009 Palindrome Number
			
9. Palindrome Number Total Accepted: 136330 Total Submissions: 418995 Difficulty: Easy Determine whe ...
 - 华为OJ平台——字符串分隔
			
题目描述: 连续输入字符串,请按长度为8拆分每个字符创 后输出到新的字符串数组: 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理 输入 连续输入字符串(输入两次,每个字符长长度小于100)输 ...
 - C# 中DataGridView 绑定List<T>做数据源的操作问题
			
若想将 List<T>作为DataGridView的数据源,然后后续还想继续操作的话,需要将List<T>赋值给BindingList对象, 然后直接将BindingList赋 ...
 - rel=nofollow
			
nofollow是什么意思? nofollow是html标签的一个属性值,Google推荐使用nofollow,告诉机器(爬虫)无需追踪目标页,是指禁止蜘蛛爬行和传递权重,但是如果你是通过sitema ...
 - HTML常见元素集锦
			
在讲解本次课程前:我们先来看下什么是浏览器: 所谓浏览器就是可以解释和执行HTML代码的工具.还有一个概念我们需要搞清楚,浏览器!=IE,IE只是浏览器当中的一种.除了IE还有N多浏览器,google ...
 - sublime Text2 2.0.2 build 2221 64位 破解(已测试)
			
近终于找到 sublime Text2 升级到 2.0.2 build 2221 64位 的破破解 输入注册码就成了 ----- BEGIN LICENSE ----- Andrew Weber S ...
 - 一个简单的SpringMVC3 程序
			
初学者对于Spring框架的难度:引用Jar包不全,或者不正确: 1.运行界面 2.客户端页面 index.jsp 的代码 <%@ page language="java" ...
 - 007Linux在线升级yum
			
1.Linux下如何安装软件:利用rpm命令进行安装: 2.rpm优点:安装过程很简单,不需要做额外的配置逻辑,拿到安装包,通过rpm命令就可以安装: 3.rpm缺点: (1)需要自己四处去找和系统版 ...