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 ...
随机推荐
- 简单的使用Nginx框架搭建Web服务器~
系统环境Debian 8,内核版本 一.首先来安装nginx服务程序: 1.安装nginx服务需要的相关程序(记得在root权限下操作下面的指令) aptitude install libpcre3 ...
- html-选择对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- es6的分析总结
1,var let const对比 1,箭头函数的总结 /** * 1,箭头函数没有this,箭头函数this没有被箭头的函数,所以不能使用call,apply,bind改变this指向 * 2,箭头 ...
- Webmin详细安装过程及问题解决
管理系统是件艰巨的任务,创建用户账户,配置服务,检查日志,还有系统管理员必须面对的所有其他的职责,都使系统管理工作成为一个不小的负担.下面介绍一个叫webmin的软件,webmin软件安装后能让读者从 ...
- Running Median POJ - 3784 (对顶堆/优先队列 | 链表)
For this problem, you will write a program that reads in a sequence of 32-bit signed integers. After ...
- HDU 3861 The King’s Problem (强连通缩点+DAG最小路径覆盖)
<题目链接> 题目大意: 一个有向图,让你按规则划分区域,要求划分的区域数最少. 规则如下:1.所有点只能属于一块区域:2,如果两点相互可达,则这两点必然要属于同一区域:3,区域内任意两点 ...
- metasploit支持利用的CVE
因为需要添加许多漏洞的流量检测,所以需要模拟很多漏洞的利用过程,简单来说,就是抓漏洞利用过程的流量. 一个脚本对metasploit中的module中包含的cve字段进行提取,而后去重,得出metas ...
- 从小白到区块链工程师:第一阶段:Go语言中的函数学习(6)
一. 为什么要有函数 我们在以后的编码过程中,有很多代码会重复出现,这些重复实现的代码,我们不需要每次需要用到的时候都编写,我们将重复的代码封装起来.比如在一个网站中,无论是消费的金额还是积分的积累等 ...
- Spring AOP 切面编程实战Demo项目
为什么会有此项目?在某日,我看博客时,看到了讲面向切面编程的内容,之前也知道spring是面向切面编程的,只是自己没有写过相关的代码,于是决定自己写一个test.但是url拦截器从外部看,和AOP有相 ...
- IIS 注册 ASP.NET 2.0 4.0
在CMD窗体,运行如下命令: 2.0:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i 4.0:C:\WINDOWS ...