文档章节

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

gitOpen_1
 gitOpen_1
发布于 2017/09/07 17:06
字数 460
阅读 324
收藏 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
粉丝 1
博文 24
码字总数 15623
作品 0
广州
后端工程师
redis(三)与spring整合

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

废柴
07/11
0
0
Spring集成Redis方案(spring-data-redis)(基于Jedis的单机模式)(待实践)

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

easonjim
2017/10/05
0
0
Spring Boot学习笔记

文件上传与下载 springboot 上传文件到服务器 Spring Boot2.0连载(33)-- Spring Boot文件上传下载 SpringBoot项目的The temporary upload location ***is not valid 问题 /tmp/tomcat.8483...

OSC_fly
07/26
0
0
spring及springboot整合redis

前言: redis是一种nosql数据库,以的形式存储数据,其速度相比于MySQL之类的数据库,相当于内存读写与硬盘读写的差别,所以常常用作缓存。接下来就分别看看在spring项目和springboot项目中如...

贪挽懒月
07/09
0
0
使用Spring Data Redis操作Redis(单机版)

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

easonjim
2017/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部