(转)spring boot整合redis
一篇写的更清晰的文章,包括redis序列化:http://makaidong.com/ncjava/330749_5285125.html
1.项目目录结构
2、引入所需jar包
<!-- Spring Boot 使用 Redis 缓存 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
3.配置文件
application.yml
testName:applicationName: testRedis spring:redis:host: 192.168.200.108port: 6379
redis.properties
host=192.168.200.108 port=6379 connectionTimeout=5000 soTimeout=5000 database=0
build.gradle
group 'springBootDemo' version '1.0-SNAPSHOT'apply plugin: 'java' apply plugin: 'war'sourceCompatibility = 1.8repositories {mavenCentral() }dependencies {testCompile("junit:junit:$springJunit")compile("org.springframework.boot:spring-boot-starter-web:$springBootVersion")compile("org.springframework.boot:spring-boot-starter-redis:$springRedisVersion")compile("org.springframework.data:spring-data-redis:$springDataRedis") }
gradle.properties
#spring springBootVersion=1.3.5.RELEASE springRedisVersion=1.3.5.RELEASE springDataRedis=1.7.2.RELEASE springJunit=1.3.5.RELEASE
4.代码
RedisConfig.java
package com.test.spring.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.*; import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;/*** Created by Administrator on 2017/3/1 14:45.*/ @Configuration public class RedisConfig {/*** 注入 RedisConnectionFactory*/@AutowiredRedisConnectionFactory redisConnectionFactory;/*** 实例化 RedisTemplate 对象** @return*/@Beanpublic RedisTemplate<String, Object> functionDomainRedisTemplate() {RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();initDomainRedisTemplate(redisTemplate, redisConnectionFactory);return redisTemplate;}/*** 设置数据存入 redis 的序列化方式** @param redisTemplate* @param factory*/private void initDomainRedisTemplate(RedisTemplate<String, Object> redisTemplate, RedisConnectionFactory factory) {redisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer());redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());redisTemplate.setConnectionFactory(factory);}/*** 实例化 HashOperations 对象,可以使用 Hash 类型操作** @param redisTemplate* @return*/@Beanpublic HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {return redisTemplate.opsForHash();}/*** 实例化 ValueOperations 对象,可以使用 String 操作** @param redisTemplate* @return*/@Beanpublic ValueOperations<String, Object> valueOperations(RedisTemplate<String, Object> redisTemplate) {return redisTemplate.opsForValue();}/*** 实例化 ListOperations 对象,可以使用 List 操作** @param redisTemplate* @return*/@Beanpublic ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {return redisTemplate.opsForList();}/*** 实例化 SetOperations 对象,可以使用 Set 操作** @param redisTemplate* @return*/@Beanpublic SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {return redisTemplate.opsForSet();}/*** 实例化 ZSetOperations 对象,可以使用 ZSet 操作** @param redisTemplate* @return*/@Beanpublic ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {return redisTemplate.opsForZSet();} }
RedisModel.java
package com.test.spring.model;import java.io.Serializable;/*** Created by Administrator on 2017/3/1 14:55.*/ public class RedisModel implements Serializable {private String redisKey;//redis中的keyprivate String name;//姓名private String tel;//电话private String address;//住址public String getRedisKey() {return redisKey;}public void setRedisKey(String redisKey) {this.redisKey = redisKey;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;} }
IRedisService.java
package com.test.spring.service;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate;import javax.annotation.Resource; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit;/*** Created by Administrator on 2017/3/1 14:57.*/ public abstract class IRedisService<T> {@Autowiredprotected RedisTemplate<String, Object> redisTemplate;@Resourceprotected HashOperations<String, String, T> hashOperations;/*** 存入redis中的key** @return*/protected abstract String getRedisKey();/*** 添加** @param key key* @param doamin 对象* @param expire 过期时间(单位:秒),传入 -1 时表示不设置过期时间*/public void put(String key, T doamin, long expire) {hashOperations.put(getRedisKey(), key, doamin);if (expire != -1) {redisTemplate.expire(getRedisKey(), expire, TimeUnit.SECONDS);}}/*** 删除** @param key 传入key的名称*/public void remove(String key) {hashOperations.delete(getRedisKey(), key);}/*** 查询** @param key 查询的key* @return*/public T get(String key) {return hashOperations.get(getRedisKey(), key);}/*** 获取当前redis库下所有对象** @return*/public List<T> getAll() {return hashOperations.values(getRedisKey());}/*** 查询查询当前redis库下所有key** @return*/public Set<String> getKeys() {return hashOperations.keys(getRedisKey());}/*** 判断key是否存在redis中** @param key 传入key的名称* @return*/public boolean isKeyExists(String key) {return hashOperations.hasKey(getRedisKey(), key);}/*** 查询当前key下缓存数量** @return*/public long count() {return hashOperations.size(getRedisKey());}/*** 清空redis*/public void empty() {Set<String> set = hashOperations.keys(getRedisKey());set.stream().forEach(key -> hashOperations.delete(getRedisKey(), key));} }
RedisServiceImpl.java
package com.test.spring.serviceimpl;import com.test.spring.model.RedisModel; import com.test.spring.service.IRedisService; import org.springframework.stereotype.Service;/*** Created by Administrator on 2017/3/1 16:00.*/ @Service public class RedisServiceImpl extends IRedisService<RedisModel> {private static final String REDIS_KEY = "TEST_REDIS_KEY";@Overrideprotected String getRedisKey() {return this.REDIS_KEY;} }
MainApplication.java
package com.test.spring;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;/*** Created by Administrator on 2017/2/28 9:40.*/ @Configuration @EnableAutoConfiguration @ComponentScan public class MainApplication {public static void main(String[] args) {System.getProperties().put("projectName", "springApp");SpringApplication.run(MainApplication.class, args);} }
TestController.java
package com.test.spring.controller;import com.test.spring.model.RedisModel; import com.test.spring.serviceimpl.RedisServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody;/*** Created by Administrator on 2017/3/1 14:55.*/ @Controller public class TestController {@Autowiredprivate RedisServiceImpl service;//添加@RequestMapping(value = "/add", method = RequestMethod.GET)@ResponseBodypublic void test() {System.out.println("start.....");RedisModel m = new RedisModel();m.setName("张三");m.setTel("1111");m.setAddress("深圳1");m.setRedisKey("zhangsanKey01");service.put(m.getRedisKey(), m, -1);RedisModel m2 = new RedisModel();m2.setName("张三2");m2.setTel("2222");m2.setAddress("深圳2");m2.setRedisKey("zhangsanKey02");service.put(m2.getRedisKey(), m2, -1);RedisModel m3 = new RedisModel();m3.setName("张三3");m3.setTel("2222");m3.setAddress("深圳2");m3.setRedisKey("zhangsanKey03");service.put(m3.getRedisKey(), m3, -1);System.out.println("add success end...");}//查询所有对象@RequestMapping(value = "/getAll", method = RequestMethod.GET)@ResponseBodypublic Object getAll() {return service.getAll();}//查询所有key@RequestMapping(value = "/getKeys", method = RequestMethod.GET)@ResponseBodypublic Object getKeys() {return service.getKeys();}//根据key查询@RequestMapping(value = "/get", method = RequestMethod.GET)@ResponseBodypublic Object get() {RedisModel m = new RedisModel();m.setRedisKey("zhangsanKey02");return service.get(m.getRedisKey());}//删除@RequestMapping(value = "/remove", method = RequestMethod.GET)@ResponseBodypublic void remove() {RedisModel m = new RedisModel();m.setRedisKey("zhangsanKey01");service.remove(m.getRedisKey());}//判断key是否存在@RequestMapping(value = "/isKeyExists", method = RequestMethod.GET)@ResponseBodypublic void isKeyExists() {RedisModel m = new RedisModel();m.setRedisKey("zhangsanKey01");boolean flag = service.isKeyExists(m.getRedisKey());System.out.println("zhangsanKey01 是否存在: "+flag);}//查询当前缓存的数量@RequestMapping(value = "/count", method = RequestMethod.GET)@ResponseBodypublic Object count() {return service.count();}//清空所有key@RequestMapping(value = "/empty", method = RequestMethod.GET)@ResponseBodypublic void empty() {service.empty();}}
数据存入redis后的截图
转自:http://www.cnblogs.com/skyessay/p/6485187.html
转载于:https://www.cnblogs.com/zhangmingcheng/p/7482019.html
(转)spring boot整合redis相关推荐
- Spring boot - 整合 Redis缓存(上)
一.配置Pom文件 在使用spring boot 2.0整合redis时遇到了好多问题,网上很多例子都是1.x版本的.故2.0没有折腾好所以将2.0降到了1.5.降级后由于thymeleaf版本也会从 ...
- Spring Boot基础学习笔记08:Spring Boot整合Redis
文章目录 零.学习目标 1.熟悉Redis相关概念 2.掌握使用Spring Boot整合Redis 一.Redis概述 1.Redis简介 2.Redis优点 (1)存取速度快 (2)数据类型丰富 ...
- 十一、Spring Boot整合Redis(一)
Spring Boot整合Redis 1. SpringBoot+单例Redis 1)引入依赖 <dependency> <groupId>org.springf ...
- Spring boot整合Redis(入门教程)
目录 源码分析 jedis VS lettuce 整合测试 导入依赖 配置连接 测试 存入字符串 存入对象 五大数据类型操作 自定义RedisConfig 存入对象 Redis工具类(常用API) 以 ...
- 大聪明教你学Java | Spring Boot 整合 Redis 实现访问量统计
前言 之前开发系统的时候客户提到了一个需求:需要统计某些页面的访问量,记得当时还纠结了一阵子,不知道怎么去实现这个功能,后来还是在大佬的带领下借助 Redis 实现了这个功能.今天又回想起了这件事,正 ...
- Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅)
Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅) 1. 配置环境 在SpringBoot2.0版本以后,原来使用的jedis被替换成为了let ...
- Spring boot整合Redis实现发布订阅(超详细)
Redis发布订阅 基础知识 相关命令 订阅者/等待接收消息 发布者/发送消息 订阅者/成功接收消息 常用命令汇总 原理 Spring boot整合redis 导入依赖 Redis配置 消息封装类(M ...
- 微服务Spring Boot 整合 Redis 实现 好友关注
文章目录 ⛅引言 一.Redis 实现好友关注 -- 关注与取消关注 二.Redis 实现好友关注 -- 共同关注功能 ⛵小结 ⛅引言 本博文参考 黑马 程序员B站 Redis课程系列 在点评项目中, ...
- 猿创征文 | 微服务 Spring Boot 整合Redis 实战开发解决高并发数据缓存
文章目录 一.什么是 缓存? ⛅为什么用缓存? ⚡如何使用缓存 二.实现一个商家缓存 ⌛环境搭建 ♨️核心源码 ✅测试接口 三.采用 微服务 Spring Boot 注解开启缓存 ✂️@CacheEn ...
- [由零开始]Spring boot 整合redis集群
Spring boot 整合redis集群 一.环境搭建 Redis集群环境搭建:https://blog.csdn.net/qq497811258/article/details/108124697 ...
最新文章
- 【Python】解决Django Admin管理界面样式表(CSS Style)丢失问题
- python第三方库之Django学习笔记一
- 微型计算机应用重点,微型计算机原理以及的应用考试重点.doc
- 欢迎使用CSDN-markdown编辑器2018
- hdu 2544 最短路
- android studio的 jar导入问题 ‘Android Studio Failed to Create MD5 hash for file’
- HTML绘制机器人代码,C#编写机器人PCSDK程序-界面程序上画机器人跟着画
- VS2010配置清单
- azure未连接_处理影响Azure成本的未使用和不必要的资源
- 技术分享 | 一文带你了解测试流程体系
- java嗅探网页视频_网页视频嗅探器( API钩子 )
- 水经注全国离线地图都有哪些地图数据?
- 【联邦学习】隐私计算理论和效率
- python turtle笛卡尔心形线_用MATLAB实现心形线
- java mock私有方法_JMockit Mock 私有方法和私有属性
- (pytorch进阶之路)DDPM扩散概率模型
- git master和main 的纠缠
- Activity onDestroy方法未能及时执行原因
- centos7搭建开源ERP-PSI
- gvim 二进制_GVim配置文件_vimrc
热门文章
- 感悟 | 一个 33 岁老程序员的自白:因为那时候我还不懂得…
- IBM推出世界最小电脑,应用区块链技术防偷骗!
- python爬虫百度翻译997_python爬取百度翻译返回:{'error': 997, 'from': 'zh', 'to': 'en', ......
- linux安装mvn及nexus远程仓库
- 谷歌设置支持webgl
- Xcode工作区间xxxx.xcworkspace不包含xxxx.xcodeproj
- linux网站配置文件.htaccess伪静态转换到IIS web.config中
- 使用maven给spring项目打可直接运行的jar包(配置文件内置外置的打法)
- 讨论PV原语、解答PV疑惑
- 键盘迷情--Treo650 VS P50 【ZZ】