一篇写的更清晰的文章,包括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相关推荐

  1. Spring boot - 整合 Redis缓存(上)

    一.配置Pom文件 在使用spring boot 2.0整合redis时遇到了好多问题,网上很多例子都是1.x版本的.故2.0没有折腾好所以将2.0降到了1.5.降级后由于thymeleaf版本也会从 ...

  2. Spring Boot基础学习笔记08:Spring Boot整合Redis

    文章目录 零.学习目标 1.熟悉Redis相关概念 2.掌握使用Spring Boot整合Redis 一.Redis概述 1.Redis简介 2.Redis优点 (1)存取速度快 (2)数据类型丰富 ...

  3. 十一、Spring Boot整合Redis(一)

    Spring Boot整合Redis    1. SpringBoot+单例Redis 1)引入依赖 <dependency>     <groupId>org.springf ...

  4. Spring boot整合Redis(入门教程)

    目录 源码分析 jedis VS lettuce 整合测试 导入依赖 配置连接 测试 存入字符串 存入对象 五大数据类型操作 自定义RedisConfig 存入对象 Redis工具类(常用API) 以 ...

  5. 大聪明教你学Java | Spring Boot 整合 Redis 实现访问量统计

    前言 之前开发系统的时候客户提到了一个需求:需要统计某些页面的访问量,记得当时还纠结了一阵子,不知道怎么去实现这个功能,后来还是在大佬的带领下借助 Redis 实现了这个功能.今天又回想起了这件事,正 ...

  6. Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅)

    Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅) 1. 配置环境 在SpringBoot2.0版本以后,原来使用的jedis被替换成为了let ...

  7. Spring boot整合Redis实现发布订阅(超详细)

    Redis发布订阅 基础知识 相关命令 订阅者/等待接收消息 发布者/发送消息 订阅者/成功接收消息 常用命令汇总 原理 Spring boot整合redis 导入依赖 Redis配置 消息封装类(M ...

  8. 微服务Spring Boot 整合 Redis 实现 好友关注

    文章目录 ⛅引言 一.Redis 实现好友关注 -- 关注与取消关注 二.Redis 实现好友关注 -- 共同关注功能 ⛵小结 ⛅引言 本博文参考 黑马 程序员B站 Redis课程系列 在点评项目中, ...

  9. 猿创征文 | 微服务 Spring Boot 整合Redis 实战开发解决高并发数据缓存

    文章目录 一.什么是 缓存? ⛅为什么用缓存? ⚡如何使用缓存 二.实现一个商家缓存 ⌛环境搭建 ♨️核心源码 ✅测试接口 三.采用 微服务 Spring Boot 注解开启缓存 ✂️@CacheEn ...

  10. [由零开始]Spring boot 整合redis集群

    Spring boot 整合redis集群 一.环境搭建 Redis集群环境搭建:https://blog.csdn.net/qq497811258/article/details/108124697 ...

最新文章

  1. 【Python】解决Django Admin管理界面样式表(CSS Style)丢失问题
  2. python第三方库之Django学习笔记一
  3. 微型计算机应用重点,微型计算机原理以及的应用考试重点.doc
  4. 欢迎使用CSDN-markdown编辑器2018
  5. hdu 2544 最短路
  6. android studio的 jar导入问题 ‘Android Studio Failed to Create MD5 hash for file’
  7. HTML绘制机器人代码,C#编写机器人PCSDK程序-界面程序上画机器人跟着画
  8. VS2010配置清单
  9. azure未连接_处理影响Azure成本的未使用和不必要的资源
  10. 技术分享 | 一文带你了解测试流程体系
  11. java嗅探网页视频_网页视频嗅探器( API钩子 )
  12. 水经注全国离线地图都有哪些地图数据?
  13. 【联邦学习】隐私计算理论和效率
  14. python turtle笛卡尔心形线_用MATLAB实现心形线
  15. java mock私有方法_JMockit Mock 私有方法和私有属性
  16. (pytorch进阶之路)DDPM扩散概率模型
  17. git master和main 的纠缠
  18. Activity onDestroy方法未能及时执行原因
  19. centos7搭建开源ERP-PSI
  20. gvim 二进制_GVim配置文件_vimrc

热门文章

  1. 感悟 | 一个 33 岁老程序员的自白:因为那时候我还不懂得…
  2. IBM推出世界最小电脑,应用区块链技术防偷骗!
  3. python爬虫百度翻译997_python爬取百度翻译返回:{'error': 997, 'from': 'zh', 'to': 'en', ......
  4. linux安装mvn及nexus远程仓库
  5. 谷歌设置支持webgl
  6. Xcode工作区间xxxx.xcworkspace不包含xxxx.xcodeproj
  7. linux网站配置文件.htaccess伪静态转换到IIS web.config中
  8. 使用maven给spring项目打可直接运行的jar包(配置文件内置外置的打法)
  9. 讨论PV原语、解答PV疑惑
  10. 键盘迷情--Treo650 VS P50 【ZZ】