Maven依赖:
<!-- redis -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
package com.utils;import org.springframework.data.redis.core.BoundHashOperations;
import org.springframework.data.redis.core.BoundValueOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component;import javax.annotation.Resource;
import java.io.Serializable;
import java.util.Set;
import java.util.concurrent.TimeUnit;/*** Redis封装工具类* By CHENYB Date 2019-05-22*/
@Component
public class RedisUtil
{@Resourceprivate RedisTemplate redisTemplate;/*** 断言键值对是否存在* @param key* @return*/@SuppressWarnings("unchecked")public boolean exists(final String key){return redisTemplate.hasKey(key);}/*** 读取缓存* @param key* @return*/@SuppressWarnings("unchecked")public Object get(final String key){Object result = null;ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();result = operations.get(key);return result;}/*** 写入缓存* @param key* @param value* @return*/@SuppressWarnings("unchecked")public boolean set(final String key, Object value){boolean result = false;try{ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();operations.set(key, value);result = true;}catch (Exception e){e.printStackTrace();}return result;}/*** 写入缓存* @param key* @param value* @return*/@SuppressWarnings("unchecked")public boolean set(final String key, Object value, Long expireTime){boolean result = false;try{ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();operations.set(key, value);redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);result = true;}catch (Exception e){e.printStackTrace();}return result;}/*** 字符串类型: 将key进行递增。如果key不存在,操作之前,key就会被置为0.* 如果key的value类型错误或者是个不能表示成数字的字符串,就返回错误。* 这个操作最多支持64位有符号的整形数字。* @param key* @param offset* @return*/public Long incrby(final String key, final Long offset){@SuppressWarnings("unchecked")ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();Object result = operations.get(key);Long count = Long.valueOf(result.toString());operations.set(key, count + 1);return count + 1;}/*** 缺席填充* @param redisKey* @param value* @param seconds* @return*/public boolean setIfAbsent(String redisKey, Object value, long seconds){boolean result = false;BoundValueOperations boundValueOperations = redisTemplate.boundValueOps(redisKey);result = boundValueOperations.setIfAbsent(value);//保存成功,更新时间,否则不更新过期时间if ((result && seconds != -1)||seconds == 0){boundValueOperations.expire(seconds, TimeUnit.SECONDS);}return result;}/*** 删除缓存* @param key* @return*/public boolean clearKey (final String key){return redisTemplate.delete( key );}/*** 删除缓存中所有数据* @return*/public Long clearKeys (){return redisTemplate.delete( redisTemplate.keys( "*" ) );}/*** 获取结果集* @param key* @return*/public BoundHashOperations hgetList(String key) {return redisTemplate.boundHashOps(key);}}
测试代码:
package com.example.demo;import com.utils.RedisUtil;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.BoundHashOperations;
import org.springframework.test.context.junit4.SpringRunner;import javax.annotation.Resource;
import java.util.List;@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTests{@Testpublic void test() {System.out.println("ok!");}@Resourceprivate RedisUtil redisUtil;@Testpublic void existsTest() {boolean exists = redisUtil.exists("111");System.out.println(exists);}@Testpublic void insertTest() {boolean chenyb = redisUtil.set("111", "CHENYB");System.out.println(chenyb);}@Testpublic void getTest() {Object o = redisUtil.get("111");System.out.println(String.valueOf(o));}}