一、简述

  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连接与插入简单库的更多相关文章

  1. Redis】Java中使用Jedis操作Redis(Maven导入包)、创建Redis连接池

    如果我们使用Java操作Redis, 需要确保已经安装了 redis 服务及 Java redis 驱动. Maven项目可以直接在pom.xml中加入jedis包驱动: <!-- https: ...

  2. Java中使用Jedis操作Redis(转载)

    整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...

  3. (转)Java中使用Jedis操作Redis

    转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...

  4. Java中使用Jedis操作Redis

    使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip 如果需要使用Redis ...

  5. 【JAVA】使用 jedis操作redis——连接、存储数据、切库等

    本篇运用Java调用jedis包(jedis在线文档API ),做简单操作实例. 安装jedis 1. 2.9.0 jar 版本下载: jedis-2.9.0.jar 2. 新建项目,添加该驱动包 连 ...

  6. Java中使用Jedis操作Redis之二

    import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.J ...

  7. 【转载】Java中使用Jedis操作Redis

    1 package com.test; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Li ...

  8. @Java中使用Jedis操作Redis之一

    依赖的jar包:jedis <dependency> <groupId>redis.clients</groupId> <artifactId>jedi ...

  9. JAVA入门[21]-Jedis操作redis示例

    本节目标 通过JedisPool获取Jedis示例,并完成对redis 简单的Key-value读写操作. 完整代码结构如下: redis服务端 在本地运行redis-server.exe,然后在re ...

随机推荐

  1. Tomcat中文乱码解决办法

    有时候发现自己将中文编码后还是会存在乱码的情况,解决办法就是在Server.xml中的Connector结点,配置 URIEncoding="UTF-8"即可

  2. mybatis相关知识

    @param解释为映射mapper.xml中的传参 mybatis中批量新增时用foreach循环,注意其中的collection属性,有list,数组 注意foreach中sql函数的写法,orac ...

  3. centos6.5 nginx安装pcre错误

    由于没有一步步记录,所以没有具体的代码和命令,就写一下过程,具体脑补一下吧~ wget下载  nginx 1.12.0后 tar解压 ./configure的时候,pcre出错 1. 按照网上的说法, ...

  4. 使用zabbix监控oracle表空间

    0.概述 zabbix是一款极其强大的开源监控工具,下面我分享下zabbix如何监控表空间,跟着这个思路,监控其他项都是类似操作. 前提条件是你已经有了zabbix server和zabbix age ...

  5. ord() expected string of length 1, but int found

    源代码是这样: s=b'^SdVkT#S ]`Y\\!^)\x8f\x80ism' key='' for i in s:     i=ord(i)-16     key+=chr(i^32) prin ...

  6. Linux学习笔记6

    less 命令 空格或者 ctrl+f  前进一屏 ctrl+b  回退一屏 回车    前进一行 /String 查找含有string 字符串的页 ?String  同上 <反方向查找> ...

  7. 关于Git安装和操作中可能碰到的问题

    markdown PDF 大致的安装流程和操作方法可以参照学长给的 Git和GitHub的简单教程 但是在具体实践过程中可能会碰到一些问题 下载 SSH key 先有远程库,要克隆一个本地库 先有本地 ...

  8. MySQL 查询所有的表名

    select table_name from information_schema.tables where table_schema='laiu8' and table_type='base tab ...

  9. UVA 508 Morse Mismatches JAVA

    题意:输入字母和数字的编码,输入词典,输入一段编码,求出对应的单词. 思路:来自https://blog.csdn.net/qq_41163933/article/details/82224703 i ...

  10. SSM项目搭建

    1.新建包 com.javen.controller com.javen.service com.javen.dao com.javen.domain com.javen.mapper 2.log4j ...