redis.hostName=127.0.0.1
redis.port=6379
redis.database=3
redis.timeout=15000
redis.usePool=true
redis.maxWaitMillis=3000
redis.maxIdle=1000
redis.minEvictableIdleTimeMillis=300000
redis.numTestsPerEvictionRun=3
redis.timeBetweenEvictionRunsMillis=60000
redis.maxTotal=10

  

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; public class RedisCacheUtil { private static Logger logger = LoggerFactory.getLogger(RedisCacheUtil.class);
private final JedisPoolConfig cfg;
private final JedisPool jedis_pool; private RedisCacheUtil() {
cfg = getConfig();
jedis_pool = getJedisPool();
} private JedisPool getJedisPool() {
String host = PropertiesUtil.getInstance().findPropVal("redis.hostName");
int port = (int) PropertiesUtil.getInstance().findPropVal("redis.port", Integer.class);
int timeout = (int) PropertiesUtil.getInstance().findPropVal("redis.timeout", Integer.class);
int db=(int) PropertiesUtil.getInstance().findPropVal("redis.database", Integer.class);
JedisPool pool = new JedisPool(cfg, host, port, timeout, null, db);
return pool;
} // private JedisConnectionFactory getJedisConnectionFactory() {
// JedisConnectionFactory fac = new JedisConnectionFactory(cfg);
// return fac;
// }
//
// public ValueOperations<String, String> getOptionTool() {
// JedisConnectionFactory fac = getJedisConnectionFactory();
// RedisTemplate<String, String> tmp = new RedisTemplate<>();
// tmp.setConnectionFactory(fac);
// tmp.setKeySerializer(new StringRedisSerializer());
// tmp.setValueSerializer(new StringRedisSerializer());
// return tmp.opsForValue();
// }
//
// public ValueOperations<String, Object> getOptionToolBinary() {
// JedisConnectionFactory fac = getJedisConnectionFactory();
// RedisTemplate<String, Object> tmp = new RedisTemplate<>();
// tmp.setConnectionFactory(fac);
// tmp.setKeySerializer(new StringRedisSerializer());
// tmp.setValueSerializer(new GenericJackson2JsonRedisSerializer());
// return tmp.opsForValue();
// } private JedisPoolConfig getConfig() {
JedisPoolConfig cfg = new JedisPoolConfig();
int maxIdle = (int) PropertiesUtil.getInstance().findPropVal("redis.maxIdle", Integer.class);
int minEvictableIdleTimeMillis = (int) PropertiesUtil.getInstance()
.findPropVal("redis.minEvictableIdleTimeMillis", Integer.class);
int numTestsPerEvictionRun = (int) PropertiesUtil.getInstance().findPropVal("redis.numTestsPerEvictionRun",
Integer.class);
int timeBetweenEvictionRunsMillis = (int) PropertiesUtil.getInstance()
.findPropVal("redis.timeBetweenEvictionRunsMillis", Integer.class);
long maxWaitMillis= (long) PropertiesUtil.getInstance()
.findPropVal("redis.maxWaitMillis", Long.class);
int maxTotal= (int) PropertiesUtil.getInstance()
.findPropVal("redis.maxTotal", Integer.class);
cfg.setMaxIdle(maxIdle);
cfg.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
cfg.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
cfg.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
cfg.setMaxWaitMillis(maxWaitMillis);
cfg.setMaxTotal(maxTotal);
return cfg;
} private static final RedisCacheUtil instance = new RedisCacheUtil(); public static final RedisCacheUtil instance() {
return instance;
} /**
* 将数据写入内存
*
* @param key
* @param val
*/
public void add(String key, String val) {
Jedis jedis = jedis_pool.getResource();
jedis.set(key, val);
jedis.close();
} /**
* 获取数据
*
* @param key
* @param val
*/
public String get(String key) {
Jedis jedis = jedis_pool.getResource();
String tmp = jedis.get(key);
jedis.close(); if (tmp == null) {
tmp = "";
}
return tmp;
} /**
* 将内存数据写入磁盘,恢复时或者重启服务自动加载
*/
public void writeToDB() {
Jedis jedis = jedis_pool.getResource();
jedis.save();
jedis.close();
} /**
* 追加内容
*
* @param key
* @param val
*/
public void append(String key, String val) {
Jedis jedis = jedis_pool.getResource();
jedis.append(key, val);
jedis.close();
} /**
* 删除key,删除内存中的数据
*
* @param key
*/
public void del(String key) {
Jedis jedis = jedis_pool.getResource();
jedis.del(key);
jedis.close();
} /**
* 取除内存数据,将其转换为jsonArray
*
* @param key
* @return
*/
public JSONArray getJSONArray(String key) {
Jedis jedis = jedis_pool.getResource();
String val = jedis.get(key);
jedis.close(); if (val == null || val.trim().length() == 0) {
return new JSONArray();
} else {
try {
return JSONObject.parseObject(val).getJSONArray("data");
} catch (Exception e) {
logger.error(e.getMessage());
return JSONArray.parseArray(val);
}
}
}
}

  

Redis工具类,不用框架时备用的更多相关文章

  1. Redis操作Hash工具类封装,Redis工具类封装

    Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...

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

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

  3. redis 工具类 单个redis、JedisPool 及多个redis、shardedJedisPool与spring的集成配置

    http://www.cnblogs.com/edisonfeng/p/3571870.html http://javacrazyer.iteye.com/blog/1840161 http://ww ...

  4. SpringBoot整合Redis及Redis工具类撰写

            SpringBoot整合Redis的博客很多,但是很多都不是我想要的结果.因为我只需要整合完成后,可以操作Redis就可以了,并不需要配合缓存相关的注解使用(如@Cacheable). ...

  5. redistemplate优雅地操作redis redis 工具类

    参考:https://www.cnblogs.com/superfj/p/9232482.html redis 工具类 package com.service; import org.springfr ...

  6. java的redis工具类

    package com.mracale.sell.utils; /** * @Auther: Mracale */ import org.springframework.beans.factory.a ...

  7. Redis 工具类 java 实现的redis 工具类

    最近了解了一下非关系型数据库 redis 会使用简单的命令 在自己本地电脑 使用时必须先启动服务器端 在启动客户端 redis 简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内 ...

  8. Java操作Redis工具类

    依赖 jar 包 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...

  9. spring boot 使用redis 及redis工具类

    1-添加maven依赖 2-添加redis配置 3-工具类 1-添加maven依赖 实际上是封装了jedis <!-- redis 依赖--> <dependency> < ...

  10. springboot redis工具类

    package com.vv.boot.util; import java.util.List; import java.util.Map; import java.util.Set; import ...

随机推荐

  1. Python 在Word中创建表格并填入数据、图片

    在Word中,表格是一个强大的工具,它可以帮助你更好地组织.呈现和分析信息.本文将介绍如何使用Python在Word中创建表格并填入数据.图片,以及设置表格样式等. Python Word库: 要使用 ...

  2. netcore linux ffmpeg 首帧图

    第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-r ...

  3. sign 单词学习 - 本质:去分开

    sign 英[saɪn],美[saɪn] n. 符号; 指示牌; 手势; 征兆; 正负号; 星座 v. 签名; 签约; 打手语 词源说明(童理民) sign : 来自拉丁语signum,符号,标志,图 ...

  4. openlayers.org 百度地图 静态化 同类产品

    openlayers 官网 https://openlayers.org/ 发现不好打开,修改dns 114.114.114.114 202.99.104.68 打开快了许多 https://blog ...

  5. 用python生成正玄波信号源码解析

    一 前记 项目需要生成不同频点的正玄波信号,没找到现成的软件,只能自己写一个了.顺便温习一下python. 二 源码解析: #!/usr/bin/python import numpy as np f ...

  6. 麦克风阵列技术-beaforming开源算法源码分析

    概述   在音频前端处理算法中,beamforming算法是一个无法绕过的存在,随着AI技术的广泛发展,前端语音技术的需求也在呈现个性化的动态范围.作为一个深耕音频算法多年的老兵,发现站在巨人的肩膀上 ...

  7. oracle错误之未知的命令开头imp忽略了剩余行解决方案

    现象:执行imp命令如下: imp username/password@orcl full=y  file=C:\optimove.dmp ignore=y  解决方案: imp 命令是在dos提示符 ...

  8. 记录:Openlayers6.5 实现轨迹回放

    这篇分享我记录到的一个案例,废话不多说,上代码 import Feature from 'ol/Feature' import LineString from 'ol/geom/LineString' ...

  9. pandas 自动化处理Excel数据

    需求: 如下一份这样的Excel数据  现在需要把学生的学号.姓名分离出来到单独的一列 ,将 测验.讨论.成绩三列转换成数值,并把讨论这列的"-"转换成 0 显示 最后把处理好的内 ...

  10. 用了两周开源堡垒机OneTerm,我有一些建议

    上一篇文章分享了一款简洁且强大的开源堡垒机OneTerm,功能完善,代码简单,GO语言开发,用来学习很合适,拿来自用也没问题.堡垒机该有的核心功能基本都有了,方便与自有系统集成,我使用了两周,功能上没 ...