文档章节

spring-data-redis整合以及基本操作

gitOpen_1
 gitOpen_1
发布于 2017/09/07 17:06
字数 460
阅读 348
收藏 16

整合包使用maven管理

使用properties资源文件存储redis连接信息

# Redis settings  
redis.host=192.168.4.246
redis.port=6390
redis.pass=qzgtest
  
redis.maxIdle=300
redis.maxActive=600
redis.maxWait=1000
redis.testOnBorrow=true

spring需要配置jedis连接配置信息、连接工厂以及模板对象

<!-- 引入配置文件 -->
	<context:property-placeholder location="classpath:redis.properties"/>
	
	<!-- 创建redis连接池 -->
	<bean name="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig" >
		<property name="maxIdle" value="${redis.maxIdle}" />  
        <property name="maxTotal" value="${redis.maxActive}" />  
        <property name="maxWaitMillis" value="${redis.maxWait}" />  
        <property name="testOnBorrow" value="${redis.testOnBorrow}" />  
	</bean>
	<!-- redis连接工厂 -->
	<bean name="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
		<property name="poolConfig" ref="jedisPoolConfig"></property>
		<property name="hostName" value="${redis.host}"></property>
		<property name="port" value="${redis.port}"></property>
		<property name="password" value="${redis.pass}"></property>
	</bean>
	
	<!-- spring提供的模板对象 -->
	<bean name="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
		<property name="connectionFactory" ref="jedisConnectionFactory"></property>
	</bean>

写了一个通用工具类对String类型和hash类型操作做了封装

public class RedisUtil	{
	
	@Autowired
	private RedisTemplate<String, String> template;
	
	//设置string
	public void set(String key ,String value){
		 template.opsForValue().set(key, value);
	}
	
	//设置String和超时时间
	public void set(String key ,String value,Long timeout){
		template.opsForValue().set(key, value);
		template.boundValueOps(key).expire(timeout, TimeUnit.HOURS);
	}
	
	//获取数据
	public String get(String key){
		return template.opsForValue().get(key);
	}
	
	//设置hash
	public void hset(String hash ,String key,String value){
		template.opsForHash().put(hash, key, value);
	}
	
	//设置hash和超时时间
	public void hset(String hash ,String key,String value,Long timeout){
		template.opsForHash().put(hash, key, value);
		//设置过期时间单位小时
		template.boundHashOps(hash).expire(timeout, TimeUnit.HOURS);
	}
	
	//获取hash下所有键和值
	public Map<String,String> hgetAll(String keys){
		HashOperations<String, Object, Object> opsForHash = template.opsForHash();
		Map<String,String> keyAndValue = new HashMap<String, String>();
		
		 Set<Object> set =opsForHash.keys(keys);
		for (Object obj : set) {
			String key =  (String) obj;
			String value =(String) opsForHash.get(keys, key);
			keyAndValue.put(key, value);
		}
		return keyAndValue;
	}
	
	//获取hash下单个值
	public String hget(String keys,String key){
		return (String) template.opsForHash().get(keys, key);
	}

模板对象提供了两种操作redis的模式

一种是opsForXXX方式获取Operations对象,通过对象再来操作

另一种是boundHashOps(XXX)直接获取指定key的redis数据对象,进行操作

© 著作权归作者所有

共有 人打赏支持
gitOpen_1
粉丝 2
博文 24
码字总数 15623
作品 0
广州
后端工程师
私信 提问
redis(三)与spring整合

一、 AVA操作redis通常使用的是Jedis,通过java代码来操作redis的数据存储读取等操作,用过的人应该知道,Jedis客户端已经足够简单和轻量级了,但是呢,在此同时,Spring也为Redis提供了支持...

废柴
07/11
0
0
springboot从入门到精通教程分享, 深度掌握Springboot实践技术教程

深度掌握Springboot实践技术教程,共22个课时,需要的可回复邮箱。 课程简介 day1 01springboot简介-曾经开发中的问题 02springboot解决的问题-优势以及弊端 03springboot环境准备 04spring...

小小倾听
12/06
0
0
Spring集成Redis方案(spring-data-redis)(基于Jedis的单机模式)(待实践)

说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点。并且会与一些低版本的Spring有冲突,要看官方文档...

easonjim
2017/10/05
0
0
使用Spring Data Redis操作Redis(单机版)

说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点。并且会与一些低版本的Spring有冲突,要看官方文档...

easonjim
2017/11/08
0
0
Spring Boot学习笔记

RabbitMQ RabbitMQ 安装 linux安装RabbitMQ详细教程 Ubuntu 16.04 RabbitMq 安装与运行(安装篇) ubantu安装rabbitMQ步骤 多线程 Spring @transactional注解和synchronized同步锁同时使用不...

OSC_fly
07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
4
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
8
0
EOS错误代码及中文释义

本文集汇总了EOS区块链常见错误代码及其含义,完整错误代码集请查看 EOS错误代码集 - 汇智网 EOS错误代码列表如下, <table class="table table-striped"> <thead> <tr><th>错误代码</th><t......

汇智网教程
昨天
4
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
4
0
kiss原则

KISS 原则是用户体验的高层境界,简单地理解这句话,就是要把一个产品做得连白痴都会用,因而也被称为“懒人原则”。换句话说来,”简单就是美“。KISS 原则源于 David Mamet(大卫马梅)的电...

NB-One
昨天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部