JAVA中通过Jedis操作Redis连接与插入简单库
一、简述
JAVA中通过Jedis操作Redis连接与插入简单库
二、依赖
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
三、代码
package com.test.utils.redis; import lombok.extern.log4j.Log4j2;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Pipeline;
import com.test.utils.redis.items.KvItem; import java.io.IOException;
import java.util.List; @Log4j2
public class RedisUtils {
private final JedisPool jedisPool;
private int dbIndex; /*
Redis辅助插入类。
* */
public RedisUtils(String host, int post, int timeout, String password, boolean ssl, int maxTotal, int maxIdel, int dbIndex) {
this.dbIndex = dbIndex;
JedisPoolConfig config = new JedisPoolConfig();
config.setTestOnBorrow(true);
config.setMaxWaitMillis(120000);
config.setMaxIdle(maxIdel);
config.setMaxTotal(maxTotal);
jedisPool = new JedisPool(config, host, post, timeout, password, ssl);
} public boolean checkConnection() {
try {
Jedis jedis = jedisPool.getResource();
if (jedis != null) {
jedis.close();
return true;
}
} catch (Exception ignored) {
log.warn("[checkConnection] check redis connection failed. ", ignored);
}
return false;
} private synchronized Jedis getJedis(int maxRetry) {
Jedis jedis = null;
Exception lastEx = new Exception("no error.");
for (int i = 0; i < maxRetry; i++) {
if (jedisPool == null) break;
try {
jedis = jedisPool.getResource();
if (jedis == null) {
Thread.sleep(1000);
} else {
jedis.select(dbIndex); //临时使用
break;
}
} catch (Exception e) {
jedis = null;
lastEx = e;
}
}
if (jedis == null) {
log.error("[get a jedis] get a jedis from pools failed, has been retry [" + maxRetry + "] times. please check connection. ", lastEx);
}
return jedis;
} public synchronized boolean add(List<KvItem> item) {
if (item == null || item.isEmpty()) return true;
try {
Jedis jedis = getJedis(300);
if (jedis == null) {
log.error("[add to redis] add to [" + item.size() + "] items to redis, but get a jedis failed. please check");
return false;
}
Pipeline p = jedis.pipelined();
for (KvItem kv : item) {
p.set(kv.getKey(), kv.getValue());
}
p.sync();
try {
p.close();
} catch (IOException e) {
log.warn("[add to redis] close jedis Pipeline failed.", e);
}
jedis.close();
return true;
} catch (Exception ex) {
log.warn("[add to redis] occur a error.", ex);
return false;
}
}
}
JAVA中通过Jedis操作Redis连接与插入简单库的更多相关文章
- Redis】Java中使用Jedis操作Redis(Maven导入包)、创建Redis连接池
如果我们使用Java操作Redis, 需要确保已经安装了 redis 服务及 Java redis 驱动. Maven项目可以直接在pom.xml中加入jedis包驱动: <!-- https: ...
- Java中使用Jedis操作Redis(转载)
整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...
- (转)Java中使用Jedis操作Redis
转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...
- Java中使用Jedis操作Redis
使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip 如果需要使用Redis ...
- 【JAVA】使用 jedis操作redis——连接、存储数据、切库等
本篇运用Java调用jedis包(jedis在线文档API ),做简单操作实例. 安装jedis 1. 2.9.0 jar 版本下载: jedis-2.9.0.jar 2. 新建项目,添加该驱动包 连 ...
- Java中使用Jedis操作Redis之二
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.J ...
- 【转载】Java中使用Jedis操作Redis
1 package com.test; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Li ...
- @Java中使用Jedis操作Redis之一
依赖的jar包:jedis <dependency> <groupId>redis.clients</groupId> <artifactId>jedi ...
- JAVA入门[21]-Jedis操作redis示例
本节目标 通过JedisPool获取Jedis示例,并完成对redis 简单的Key-value读写操作. 完整代码结构如下: redis服务端 在本地运行redis-server.exe,然后在re ...
随机推荐
- 004 使用SpringMVC开发restful API二--编写用户详情
一:编写用户详情服务 1.任务 @PathVariable隐射url片段到java方法的参数 在url声明中使用正则表达式 @JsonView控制json输出内容 二:@PathVariable 1. ...
- Linux 常用基本指令
1.ls 参数: -a:列出所有目录(“.”开头的是隐藏文件) -l: 以长格式列出目录下的内容列表 2.cd cd 切换到家目录 cd ~ 切换到家目录 cd .. 切换到上一级目录 3.pwd ...
- 爬虫3 requests基础
import requests # get实例 # res = requests.get('http://httpbin.org/get') # # res.encoding='utf-8' # pr ...
- 初窥Java之四
一.条件判断之if判断 语法格式:if(结果为布尔类型的结果值){ 功能执行语句; }else if(结果为布尔类型的结果值){ 功能执行语句; } ....{ }else{ 功能执行语句: } 注意 ...
- "放管服"改革 清单
全国31个省份已全部公布省级部门权力清单,29个省份公布了责任清单:已有57个国务院部门公布了权力清单:自贸试验区的负面清单已从2013年的193项减至目前的122项…… 2013年以来,党中央.国务 ...
- SpringCloud学习目录
Spring Cloud直接建立在Spring Boot的企业Java创新方法上,它通过实现经过验证的模式来简化分布式.微服务风格的体系结构,从而为您的微服务带来弹性.可靠性和协调. 以上来自spri ...
- 踩坑记:Tensorflow环境搭建
自从上一篇论文投出去,之后就各种事就来了……处理那些乱七八糟的事就是让人心累,在加上师哥们毕业,能帮我的人越来越少了,而要指望你的人呢,越来越多.一想到那些用搜索引擎都搜不到资料的人,蓦地想起邓爷爷说 ...
- UVA 232 Corssword Answer
题意:输入m*n大小的字符串(里面有*,*为黑格,其他为白格),然后对它编号,编号规则为从左到右,从上往下,且左边或上面没有白格(可能是黑格或越界),如下图: 注意: ①除第一次输出答案外,其余每次输 ...
- sql语句1——join
注:一下内容来自于http://www.w3school.com.cn/sql/ 1. 引用两个表 我们可以通过引用两个表的方式,从两个表中获取数据: 谁订购了产品,并且他们订购了什么产品? sele ...
- LOJ.2585.[APIO2018]新家(二分 线段树 堆)
LOJ 洛谷 UOJ BZOJ 四OJ Rank1 hhhha 表示这个b我能装一年→_→ 首先考虑离线,将询问按时间排序.对于每个在\([l,r]\)出现的颜色,拆成在\(l\)加入和\(r+1\) ...