Redis工具类,不用框架时备用
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工具类,不用框架时备用的更多相关文章
- Redis操作Hash工具类封装,Redis工具类封装
Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...
- Redis操作字符串工具类封装,Redis工具类封装
Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...
- redis 工具类 单个redis、JedisPool 及多个redis、shardedJedisPool与spring的集成配置
http://www.cnblogs.com/edisonfeng/p/3571870.html http://javacrazyer.iteye.com/blog/1840161 http://ww ...
- SpringBoot整合Redis及Redis工具类撰写
SpringBoot整合Redis的博客很多,但是很多都不是我想要的结果.因为我只需要整合完成后,可以操作Redis就可以了,并不需要配合缓存相关的注解使用(如@Cacheable). ...
- redistemplate优雅地操作redis redis 工具类
参考:https://www.cnblogs.com/superfj/p/9232482.html redis 工具类 package com.service; import org.springfr ...
- java的redis工具类
package com.mracale.sell.utils; /** * @Auther: Mracale */ import org.springframework.beans.factory.a ...
- Redis 工具类 java 实现的redis 工具类
最近了解了一下非关系型数据库 redis 会使用简单的命令 在自己本地电脑 使用时必须先启动服务器端 在启动客户端 redis 简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内 ...
- Java操作Redis工具类
依赖 jar 包 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...
- spring boot 使用redis 及redis工具类
1-添加maven依赖 2-添加redis配置 3-工具类 1-添加maven依赖 实际上是封装了jedis <!-- redis 依赖--> <dependency> < ...
- springboot redis工具类
package com.vv.boot.util; import java.util.List; import java.util.Map; import java.util.Set; import ...
随机推荐
- Python 在Word中创建表格并填入数据、图片
在Word中,表格是一个强大的工具,它可以帮助你更好地组织.呈现和分析信息.本文将介绍如何使用Python在Word中创建表格并填入数据.图片,以及设置表格样式等. Python Word库: 要使用 ...
- netcore linux ffmpeg 首帧图
第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-r ...
- sign 单词学习 - 本质:去分开
sign 英[saɪn],美[saɪn] n. 符号; 指示牌; 手势; 征兆; 正负号; 星座 v. 签名; 签约; 打手语 词源说明(童理民) sign : 来自拉丁语signum,符号,标志,图 ...
- openlayers.org 百度地图 静态化 同类产品
openlayers 官网 https://openlayers.org/ 发现不好打开,修改dns 114.114.114.114 202.99.104.68 打开快了许多 https://blog ...
- 用python生成正玄波信号源码解析
一 前记 项目需要生成不同频点的正玄波信号,没找到现成的软件,只能自己写一个了.顺便温习一下python. 二 源码解析: #!/usr/bin/python import numpy as np f ...
- 麦克风阵列技术-beaforming开源算法源码分析
概述 在音频前端处理算法中,beamforming算法是一个无法绕过的存在,随着AI技术的广泛发展,前端语音技术的需求也在呈现个性化的动态范围.作为一个深耕音频算法多年的老兵,发现站在巨人的肩膀上 ...
- oracle错误之未知的命令开头imp忽略了剩余行解决方案
现象:执行imp命令如下: imp username/password@orcl full=y file=C:\optimove.dmp ignore=y 解决方案: imp 命令是在dos提示符 ...
- 记录:Openlayers6.5 实现轨迹回放
这篇分享我记录到的一个案例,废话不多说,上代码 import Feature from 'ol/Feature' import LineString from 'ol/geom/LineString' ...
- pandas 自动化处理Excel数据
需求: 如下一份这样的Excel数据 现在需要把学生的学号.姓名分离出来到单独的一列 ,将 测验.讨论.成绩三列转换成数值,并把讨论这列的"-"转换成 0 显示 最后把处理好的内 ...
- 用了两周开源堡垒机OneTerm,我有一些建议
上一篇文章分享了一款简洁且强大的开源堡垒机OneTerm,功能完善,代码简单,GO语言开发,用来学习很合适,拿来自用也没问题.堡垒机该有的核心功能基本都有了,方便与自有系统集成,我使用了两周,功能上没 ...