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 ...
随机推荐
- 总结TCP为什么三次握手四次挥手
为什么三次握手,而不是两次或者四次五次? 2019/3/4更新: 在阅读了很多技术博客后,发先大家对为什么三次握手不是两次众说纷纭:我觉得说的最好的是英文文章对TCP的解读.TCP和UDP的区别就是可 ...
- Linux学习之RPM包管理-rpm命令管理(十六)
Linux学习之RPM包管理-rpm命令管理 目录 简介 RPM包依赖性 包全名与包名 rpm软件包安装 rpm软件包卸载 升级降级rpm软件包 rpm软件包的查询 rpm软件包校验 简介 RPM是R ...
- Python中list、字典、字符串的讲解
python 的list讲解 计算机中的数组是从0开始的 list中的下标.角标.索引说的都是一个 数组都是从0开始的. stus=["刘",“王”,“张”] stus2=[] ...
- Typescript 常见的几种函数重载方法详解与应用示例
所谓的重载,其实就是使用相同的函数名,传入不同数量的参数或不同类型的参数,以此创建出多个方法或产生不同结果. 1. 最常见的,也就是根据定义傻瓜式地判断参数类型与数量 function showPer ...
- tar 打包压缩
tar命令详解 -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用 ...
- Xamarin Essentials教程实现数据的传输功能实例
Xamarin Essentials教程实现数据的传输功能实例 [示例1-1]以下将实现数据的传输功能.代码如下: public async Task ShareUri(string text, st ...
- VMware5.5-VMware补丁程序VUM
VUM 官方文档 https://docs.vmware.com/cn/VMware-vSphere/5.5/com.vmware.vsphere.update_manager.doc/GUID-F7 ...
- CC NOV17
PERPALIN 可以考虑最后的状态可以是两个非常长而且相同的前缀和后缀中间再加一小段,然后就是不断缩小区间至出解 CHEFHPAL 发现当字符集大于等于3的时候abc循环一定是没有大于1的回文子串的 ...
- Java笔记(八)TreeMap & TreeSet & LinkedHashMap
TreeMap & TreeSet & LinkedHashMap 一.TreeMap HashMap缺陷:键值对之间没有特定的顺序.在TreeMap中, 键值对之间按键有序,Tree ...
- Kotlin基础(一)Kotlin快速入门
Kotlin快速入门 一.函数 /* * 1.函数可以定义在文件最外层,不需要把它放在类中 * 2.可以省略结尾分号 * */ fun main(args: Array<String>) ...