博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单示例:Spring4 整合 单个Redis服务
阅读量:6342 次
发布时间:2019-06-22

本文共 5150 字,大约阅读时间需要 17 分钟。

1. 引入spring-data-redis.jar

  API:

2. spring配置文件添加如下配置

# Redis settings#redis的服务器地址redis.host=localhost#redis的服务端口redis.port=6379#密码redis.pass=123#最大空闲数redis.maxIdle=300#最大总数redis.maxTotal=1000#指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个redis.testOnBorrow=true

 

 

3. Redis工具类

package com.*;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.*;import org.springframework.stereotype.Component;import java.util.Arrays;import java.util.List;import java.util.Map;import java.util.concurrent.TimeUnit;/** * Created by Administrator on 2017/3/8. */@Componentpublic class RedisManager
{ private Logger log = Logger.getLogger(RedisManager.class); @Autowired private RedisTemplate redisTemplate; /** =================================== Hash ====================================================**/ /** * 缓存Map * * @param key * @param hashKey * @param t * @return */ public void setCacheMap(String key, String hashKey, T t) { BoundHashOperations boundHashOperations = redisTemplate.boundHashOps(key); boundHashOperations.put(hashKey, t);// boundHashOperations.expire(BasConstant.MEMORY_TOKEN_EXPIRES, TimeUnit.DAYS);// redisTemplate.opsForValue().set(realToken, studentVo, BasConstant.TOKEN_EXPIRES_HOUR, TimeUnit.DAYS); //存储到redis并设置过期时间// redisTemplate.boundValueOps(realToken).set(studentVo, BasConstant.TOKEN_EXPIRES_HOUR, TimeUnit.DAYS); } /** * 获得缓存的Map * * @param key //* @param hashOperation * @return */ public
Map
getCacheMap(String key/*,HashOperations
hashOperation*/) { Map
map = redisTemplate.opsForHash().entries(key); /*Map
map = hashOperation.entries(key);*/ return map; } /** * 获取缓存的map大小 * * @param key * @return */ public long getCacheMapSize(String key) { return redisTemplate.opsForHash().size(key); } /** * 获取map的value值 * * @param key key * @param hashKey field * @return */ public Object getMapValue(String key, String hashKey) { return redisTemplate.opsForHash().get(key, hashKey); } /** * 是否存在 key 及 field * * @param key key * @param hashKey field * @return */ public boolean hasHashKey(String key, String hashKey) { return redisTemplate.opsForHash().hasKey(key, hashKey); } /** * 延期 * * @param key * @return */ public boolean expireHash(String key, long time) { return redisTemplate.boundHashOps(key).expire(time, TimeUnit.DAYS); } /** * 从redis中删除key缓存 * * @param key */ public void deleteHashKey(String key, Object... hashKeys) { redisTemplate.opsForHash().delete(key, hashKeys); } /** =================================== 通用 ====================================================**/ /** * 从redis中删除key缓存 * * @param key */ public void deleteKey(String key, Object... hashKeys) { redisTemplate.delete(key); } /** * 是否存在key * * @param key * @return 是否存在key */ public boolean hasKey(String key) { return redisTemplate.hasKey(key); } /** * 延期 * * @param key 键值 * @return */ public boolean expire(String key, long time, TimeUnit timeUnit) { return redisTemplate.expire(key, time, timeUnit); } /** =================================== List ====================================================**/ /** * list缓存 * * @param key * @param value * @return */ public boolean setCacheList(String key, String value) { try { ListOperations
listOps = redisTemplate.opsForList(); listOps.rightPush(key, value); return true; } catch (Throwable t) { log.error("缓存[" + key + "]失败, value[" + value + "]", t); } return false; } public void setValueForList(String key, long index, Object value){ BoundListOperations listOps = redisTemplate.boundListOps(key); listOps.set(index, value); } /** * 缓存list * * @param key 键值 * @param list value * @return */ public void setCacheList(String key, List list) { BoundListOperations listOps = redisTemplate.boundListOps(key); //只能以数组形式存放 listOps.rightPushAll(list.toArray()); } /** * 获取list缓存 - 根据起始~终止位置 * * @param key 键值 * @param start 起始位置 * @param end 截止位置 * @return */ public List getList(String key, long start, long end) { List list = null; try { BoundListOperations listOperations = redisTemplate.boundListOps(key); list = listOperations.range(start, end); } catch (Throwable t) { log.error("获取list缓存失败key[" + key + ", error[" + t + "]"); } return list; } /** * 获取list缓存 - 根据索引位置 * * @param key 键值 * @param i 索引位置 * @return */ public Object getCacheList(String key, int i) { BoundListOperations listOps = redisTemplate.boundListOps(key); return listOps.index(i); } /** * 获取总条数, 可用于分页 * * @param key * @return */ public long getCacheListSize(String key) { BoundListOperations listOps = redisTemplate.boundListOps(key); return listOps.size(); }}

4. 在service中引入使用工具类操作redis

 

转载地址:http://qxkla.baihongyu.com/

你可能感兴趣的文章
Ubuntu下有关Java和数据库的一些工作记录(二)
查看>>
java 线程
查看>>
MySql 时间函数
查看>>
解决php收邮件乱码问题
查看>>
linux shell中'',""和``的区别
查看>>
OceanBase数据库实践入门——手动搭建OceanBase集群
查看>>
WPF学习:3.Border & Brush
查看>>
Docker(二):微服务教程
查看>>
关于JAVA项目报表选型过程
查看>>
javascript
查看>>
Spring_MVC
查看>>
Java统计文件夹中文件总行数
查看>>
python之基本数据类型及深浅拷贝
查看>>
将bootstrap弹出框的点击弹出改为鼠标移入弹出
查看>>
SKF密码设备研究
查看>>
数据对象映射模式(通过工厂模式和注册树模式)v2
查看>>
4939 欧拉函数[一中数论随堂练]
查看>>
MySQL笔记(一)
查看>>
spring boot 包jar运行
查看>>
通过VMWare安装Linux(Ubuntu) 虚拟机在Window10系统和问题解决方案
查看>>