spring 集成redis客户端jedis(java)
spring集成jedis简单实例
jedis是redis的java客户端,spring将redis连接池作为一个bean配置。
“redis.clients.jedis.JedisPool”,这是单机环境适用的redis连接池。
1、maven导入相关包:
<!-- redis依赖包 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2、下面是单机环境下redis连接池的配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引入jedis的properties配置文件 -->
<!--如果你有多个数据源需要通过<context:property-placeholder管理,且不愿意放在一个配置文件里,那么一定要加上ignore-unresolvable=“true"-->
<context:property-placeholder location="classpath:properties/redis.properties" ignore-unresolvable="true" />
<!--Jedis连接池的相关配置-->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!--新版是maxTotal,旧版是maxActive-->
<property name="maxTotal">
<value>${redis.pool.maxActive}</value>
</property>
<property name="maxIdle">
<value>${redis.pool.maxIdle}</value>
</property>
<property name="testOnBorrow" value="true"/>
<property name="testOnReturn" value="true"/>
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="poolConfig" ref="jedisPoolConfig" />
<constructor-arg name="host" value="${redis.host}" />
<constructor-arg name="port" value="${redis.port}" type="int" />
<constructor-arg name="timeout" value="${redis.timeout}" type="int" />
<constructor-arg name="password" value="${redis.password}" />
<constructor-arg name="database" value="${redis.database}" type="int" />
</bean>
</beans>
3、对应的classpath:properties/redis.properties.xml为:
#最大分配的对象数
redis.pool.maxActive=200
#最大能够保持idel状态的对象数
redis.pool.maxIdle=50
redis.pool.minIdle=10
redis.pool.maxWaitMillis=20000
#当池内没有返回对象时,最大等待时间
redis.pool.maxWait=300 #格式:redis://:[密码]@[服务器地址]:[端口]/[db index]
redis.uri = redis://:12345@127.0.0.1:6379/0 redis.host = 127.0.0.1
redis.port = 6379
redis.timeout=30000
redis.password = 12345
redis.database = 0

4、RedisUtil
package com.ctid.business.redis.util;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
@Component
public class RedisUtil {
@Resource
private JedisPool jedisPool;// 注入JedisPool
public String get(String key) {// 获取指定 key 的值。如果 key 不存在,返回 nil
Jedis jedis = jedisPool.getResource();
String string = jedis.get(key);
jedis.close();
return string;
}
public String set(String key, String value) {// 设置一些字符串值
Jedis jedis = jedisPool.getResource();
String string = jedis.set(key, value);
jedis.close();
return string;
}
public String hget(String hkey, String key) {// 获取哈希表中指定字段的值
Jedis jedis = jedisPool.getResource();
String string = jedis.hget(hkey, key);
jedis.close();
return string;
}
public long hset(String hkey, String key, String value) {// 为哈希表中的字段赋值
Jedis jedis = jedisPool.getResource();
long result = jedis.hset(hkey, key, value);
jedis.close();
return result;
}
public long incr(String key) {// 将 key 中储存的数字值增一,如果 key 不存在,那么 key 的值会先被初始化为
// 0 ,然后再执行INCR操作
Jedis jedis = jedisPool.getResource();
long result = jedis.incr(key);
jedis.close();
return result;
}
public long expire(String key, int second) {// 设置key的到期时间
Jedis jedis = jedisPool.getResource();
long result = jedis.expire(key, second);
jedis.close();
return result;
}
public long ttl(String key) {// 以秒为单位返回 key 的剩余过期时间
Jedis jedis = jedisPool.getResource();
long result = jedis.ttl(key);
jedis.close();
return result;
}
public long del(String key) {// 根据key删除
Jedis jedis = jedisPool.getResource();
long result = jedis.del(key);
jedis.close();
return result;
}
public long hdel(String hkey, String key) {// 删除哈希表key中的一个或多个指定字段
Jedis jedis = jedisPool.getResource();
long result = jedis.hdel(hkey, key);
jedis.close();
return result;
}
}
5、redisUtil调用
package com.ctid.business.redis.testIpv6;
import javax.annotation.Resource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;
import com.ctid.business.redis.util.RedisUtil;
@Service
public class TestIpv6 {
private static final Log LOGGER = LogFactory.getLog(TestIpv6.class);
@Resource
private RedisUtil redisUtil;
public void testIpv6() {
LOGGER.info("redis======================================");
String result1 = redisUtil.set("test", "1111");
LOGGER.info("redis设置值:" + result1);
String result2 = redisUtil.get("test");
LOGGER.info("redis查询值:" + result2);
}
}
spring 集成redis客户端jedis(java)的更多相关文章
- spring 集成 redis -- pub/sub
redis除了常用的当做缓存外,还可以当做简单的消息中间件,实现消息发布订阅 spring集成redis,可以使用spring-data-redis 首先引入相关maven依赖(此处我spring相关 ...
- Redis客户端——Jedis的使用
本文介绍基于Java语言的Redis客户端——Jedis的使用,包括Jedis简介.获取Jedis.Jedis直连.Jedis连接池以及二者的对比的选择. Jedis简介 Jedis 是 Redis ...
- Spring集成Redis集群(含spring集成redis代码)
代码地址如下:http://www.demodashi.com/demo/11458.html 一.准备工作 安装 Redis 集群 安装参考: http://blog.csdn.net/zk6738 ...
- redis 学习(8)-- redis 客户端 -- Jedis
redis 客户端 -- Jedis 1. Jedis 直连 本质是 TCP 连接. 执行流程 创建Jedis对象 通过Jedis执行命令 返回Jedis执行结果 关闭Jedis连接 demo 要使用 ...
- Spring集成Redis方案(spring-data-redis)(基于Jedis的单机模式)(待实践)
说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...
- spring 5.x 系列第8篇 —— 整合Redis客户端 Jedis和Redisson (代码配置方式)
文章目录 一.说明 1.1 Redis 客户端说明 1.2 Redis可视化软件 1.3 项目结构说明 1.3 依赖说明 二.spring 整合 jedis 2.1 新建基本配置文件和其映射类 2.2 ...
- spring 5.x 系列第7篇 —— 整合Redis客户端 Jedis和Redisson (xml配置方式)
文章目录 一.说明 1.1 Redis 客户端说明 1.2 Redis可视化软件 1.3 项目结构说明 1.3 依赖说明 二.spring 整合 jedis 2.1 新建基本配置文件 2.2 单机配置 ...
- Java操作redis客户端Jedis使用
1.1 jedis介绍 Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java.C.C#.C++.php.Node.js.Go等. 在官方网站里列一些Java的客户端,有 ...
- Java操作redis客户端Jedis连接集群(Cluster)
创建JedisCluster类连接redis集群. @Test public void testJedisCluster() throws Exception { //创建一连接,JedisClust ...
随机推荐
- Vue入门笔记(二)--基础部分之条件渲染
github地址:https://github.com/iTao9354/basicVue/tree/master/conditional%20rendering(demo01-03) 一.v-if ...
- PROJ.4学习——地图投影
PROJ.4学习——地图投影(坐标系投影) 前言 PROJ是由大量的基础投影库构成.这里主要讨论学习PROJ库的相关参数. 这里大部分是讲如何将3D坐标系投影到2D平面上.投影时,涉及到基准线,单位, ...
- linux php5.6 安装扩展 memcached
wget http://pecl.php.net/get/igbinary-1.1.1.tgz tar -xzvf igbinary-.tgz cd igbinary- /usr/local/php5 ...
- Linux c codeblock的使用(四):创建自己的静态函数库
从我之前的博文当中,大家应该大概了解了linux下的函数库究竟是一个什么样的东西.linux下的函数库其实就像windows中的dll文件,里面包含了程序运行所需要的函数. 其实无论是我们使用linu ...
- 假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小
假如有Thread1.Thread2.Thread3.Thread4四条线程分别统计C.D.E.F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现? 实现1:用concur ...
- AJax提交表单数据到后台springmvc接收
第一种方法直接用serialize()方法 function insert(){ $.ajax({ type:"POST", url:"${pageContext.req ...
- Vue学习Day002
内联处理器的操作 除了直接绑定到一个方法,也可以在内联JavaScript语句中调用方法 <div id="example-3"> <button v-on:cl ...
- linux使用npm成功安装命令后,执行时却报找不到命令的问题
# 使用npm安装serve命令 ~$ npm install serve --global 安装成功 # 可是执行命令会报错 ~$ serve -v bash: serve: command not ...
- 使用Python统计函数绘制简单图形matplotlib
1.bar() -- 绘制柱状图 plt.bar(x,y,align="center",color="b",tick_label=["a", ...
- 【js高程学习笔记】关于变量值和函数参数
变量包含了两种不同类型的值: 基本类型 (Undefined.null.Boolean.Number.string都属于基本类型) 引用类型 (对象) 两种值在赋值上不同的是: 将一个引用类型的值(对 ...