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 ...
随机推荐
- vue使用cordova的大坑!!
额,前段时间用 cordova 包了个 vue 项目,跑真机,完美.跑公司安卓系统虚拟机,垮. 原因找了很久,最后发现是路由的问题,使用了 createWebHistory ,去掉了 hash ,虽然 ...
- Nacos服务跨分组调用
一. 问题背景 nacos有两种服务隔离的机制,一个是空间namespace,一般我们用namespace区分环境,另外一个是分组group,nacos的默认调用机制是同namespace下的同gro ...
- iview viewDesign table 单选 Radio
columns.js export default [ { title: '选择', slot: 'choose', align: 'center', width: 100 }, table里面 &l ...
- grails中使用render方法输出XML总结
GrailsXMLJava 1.首先看看简单的XML生成情况 Java代码 收藏代码 <images> <image title="one" /& ...
- 快速排序——Java
快排的思想想必大家都懂,前后两个指针,向中间靠拢.我这个partition函数能保证所有相同的数都被比较一次,靠拢在一起. 代码: public class Main { public static ...
- 走进volatile的世界,探索它与可见性,有序性,原子性之间的爱恨情仇!
写在开头 在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码块,方法参 ...
- python基础六(函数基础及参数使用)
一. 函数定义 1.什么是函数 函数就相当于具备某一功能的工具 函数的使用必须遵循一个原则: 先定义 后调用2.为何要用函数 代码冗余,程序的组织结构不清晰,可读性差 可维护性.扩展性差3.如何用函数 ...
- Three.js的基础使用
1. 引言 Three.js是著名的JavaScript 3D图形库,用于浏览器中开发 3D 交互场景的 JS 引擎,可以快速的搭建三维场景 Three.js官网为:创建一个场景 – three.js ...
- 记录--H5 视频兼容性处理总结
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 概述 最近在负责公司官网的开发,在 H5 播放视频时,遇到很多兼容问题,所以总结下在 H5 播放时,遇到的兼容性问题,并封装一个 Vide ...
- 记录--Vue PC前端扫码登录
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 需求描述 目前大多数PC端应用都有配套的移动端APP,如微信,淘宝等,通过使用手机APP上的扫一扫功能去扫页面二维码图片进行登录,使得用户 ...