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. Thinkphp6 自定义命令创建类文件

    以创建控制器为例 1.先通过 think 命令创建一个make文件,效果如下图: php think make:command make/MyController 2.修改上面创建的文件[MyCont ...

  2. 聊聊CWE 4.14 与 ISA/IEC 62443中,如何保障工业软件的安全性

    本文分享自华为云社区<CWE 4.14 与 ISA/IEC 62443>,作者:Uncle_Tom. 1. 序言 随着 5G 的应用,物联的网发展,越来越多的自动化控制系统.云服务在工业控 ...

  3. config.js 多人同步更新 解决方案 多项目公用一套config.js dev

    index.html <script type='text/javascript' src='<%= BASE_URL %>config.js?${Math.random().toS ...

  4. AAC音频编码之--概念介绍

    一 概念 AAC,全称Advanced Audio Coding,是一种专为声音数据设计的文件压缩格式.与MP3不同,它采用了全新的算法进行编码,更加高效,具有更高的"性价比".利 ...

  5. FFmpeg命令行之ffmpeg

    一.简述 ffmpeg是一个非常强大的工具,它可以转换任何格式的媒体文件,并且还可以用自己的AudioFilter以及VideoFilter进行处理和编辑.有了它,我们就可以对媒体文件做很多我们想做的 ...

  6. 8、Linux CentOS 安装.Net Core 3.1

    1.添加密钥 将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库. 打开终端并运行以下命令: sudo rpm -Uvh https://packages.m ...

  7. 【Unity 3D游戏开发】在Unity使用NoSQL数据库方法介绍

    随着游戏体积和功能的不断叠加,游戏中的数据也变得越来越庞杂,这其中既包括玩家产生的游戏存档等数据,例如关卡数.金币等,也包括游戏配置数据,例如每一关的配置情况.尽管Unity提供了PlayerPref ...

  8. [极客大挑战 2019]web部分题解(已完结!)

    SQL部分: [极客大挑战 2019]BabySQL 打开环境后有登录界面◕‿◕ 一眼注入,后先试试万能密码: username:admin' or '1'='1 password:1 GG,出大问题 ...

  9. verilog之random

    verilog之random 1.基本作用 random,用于产生随机数.在测试时,有时需要测试的情况太多,无法一一列举,就需要使用抽样测试的方法验证功能是否可行.random是一个有返回值的系统函数 ...

  10. 《HelloGitHub》第 96 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...