1、安装依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2、配置连接
spring.redis.host=xx.xx.xx.xx
spring.redis.port=6379
spring.redis.password= ##???????????????
spring.redis.pool.max-active=18 ## ????????0???
3、编写服务类
package com.tcdri.smartlab.service;
import java.util.List;
import java.util.Map;
public interface RedisService {
// 加入元素
void setValue(String key, Map<String, Object> value);
// 加入元素
void setValue(String key, String value);
// 加入元素
void setValue(String key, Object value);
// 获取元素
Object getMapValue(String key);
// 获取元素
Object getValue(String key);
//删除元素
void delKeyValue(String key);
//设置redis中的List
void setRedisList(String key,Object value);
//获取redis列表数据
List<Object> getRedisList(String key);
//设置hash值
void setRedisHash(String hashKey,String key,String value);
//获取hash中的值
Object getRedisHash(String hashKey,String key);
String SetZset(String key);
}
实现类
package com.tcdri.smartlab.service.Impl;
import com.tcdri.smartlab.service.RedisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.stereotype.Service;
import org.springframework.data.redis.core.DefaultTypedTuple;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@Service
public class RedisServiceImpl implements RedisService {
@Autowired
private RedisTemplate redisTemplate=null;
@PostConstruct
public void init(){
this.initRedisTemplate();
}
private void initRedisTemplate(){
RedisSerializer stringSerializer=this.redisTemplate.getStringSerializer();
this.redisTemplate.setKeySerializer(stringSerializer);
this.redisTemplate.setHashKeySerializer(stringSerializer);
this.redisTemplate.setValueSerializer(stringSerializer);
this.redisTemplate.setHashValueSerializer(stringSerializer);
}
@Override
public void setValue(String key, Map<String, Object> value) {
ValueOperations<String, Object> vo = redisTemplate.opsForValue();
vo.set(key, value);
redisTemplate.expire(key, 1, TimeUnit.HOURS); // 这里指的是1小时后失效
}
@Override
public Object getValue(String key) {
ValueOperations<String, String> vo = redisTemplate.opsForValue();
return vo.get(key);
}
@Override
public void setValue(String key, String value) {
ValueOperations<String, Object> vo = redisTemplate.opsForValue();
vo.set(key, value);
redisTemplate.expire(key, 1, TimeUnit.HOURS); // 这里指的是1小时后失效
}
@Override
public void setValue(String key, Object value) {
ValueOperations<String, Object> vo = redisTemplate.opsForValue();
vo.set(key, value);
redisTemplate.expire(key, 1, TimeUnit.HOURS); // 这里指的是1小时后失效
}
@Override
public Object getMapValue(String key) {
ValueOperations<String, String> vo = redisTemplate.opsForValue();
return vo.get(key);
}
/**
* 删除键
* @param key
*/
@Override
public void delKeyValue(String key)
{
redisTemplate.delete(key);
}
/**
* 设置redis列表
* @param key
* @param value
*/
@Override
public void setRedisList(String key,Object value) {
ListOperations<String, Object> vo = redisTemplate.opsForList();
vo.leftPush(key,value);
}
/**
* 获取redis列表元素
* @param key
* @return
*/
@Override
public List<Object> getRedisList(String key){
ListOperations<String, Object> vo = redisTemplate.opsForList();
List<Object> result= vo.range(key,0,-1);
return result;
}
/**
* 设置hash值
* @param hashKey
* @param key
* @param value
*/
@Override
public void setRedisHash(String hashKey,String key,String value){
redisTemplate.opsForHash().put(hashKey,key,value);
}
/**
* 获取hash中的值
* @param hashKey
* @param key
* @return
*/
@Override
public Object getRedisHash(String hashKey,String key){
return redisTemplate.opsForHash().get(hashKey,key);
}
@Override
public String SetZset(String key){
Set<ZSetOperations.TypedTuple<String>> typedTupleSet=new HashSet<>();
for(int i=0;i<9;i++){
double score=i*0.1;
ZSetOperations.TypedTuple<String> typedTuple=new DefaultTypedTuple<String>("value"+i,score);
typedTupleSet.add(typedTuple);
}
redisTemplate.opsForZSet().add(key,typedTupleSet);
return "OK";
}
}
注意:为2.7版本是要实用如下代码
@Autowired
@Resource
private StringRedisTemplate stringRedisTemplate;
@Autowired
@Resource
private RedisTemplate redisTemplate;
4、编写控制器
package com.tcdri.smartlab.controller;
import com.tcdri.smartlab.service.RedisService;
import com.tcdri.smartlab.utils.aboutResult.ResultMap;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/redis")
@Api(tags = {"redis测试部分"})
@CrossOrigin
public class RedisController {
@Autowired
private RedisService redisServiceObject;
@ApiOperation(value = "获取redis数据")
@GetMapping(value = "/getRedisData/{key}")
public ResultMap getRedisData(@PathVariable("key") String key){
return ResultMap.SUCCESS.setNewData(redisServiceObject.getValue(key));
}
@ApiOperation(value = "设置redis")
@GetMapping(value = "/setRedisData/{key}/{value}")
public ResultMap setRedisData(@PathVariable("key") String key,@PathVariable("value") String value){
redisServiceObject.setValue(key, value);
return ResultMap.SUCCESS.setNewData("设置成功");
}
@ApiOperation(value = "删除redis")
@DeleteMapping(value = "/deleteRedisData/{key}")
public ResultMap deleteRedisData(@PathVariable("key") String key){
redisServiceObject.delKeyValue(key);
return ResultMap.SUCCESS.setNewData("删除成功");
}
@ApiOperation(value = "设置redis列表")
@GetMapping(value = "/setRedisList/{key}/{value}")
public ResultMap setRedisList(@PathVariable("key") String key,@PathVariable("value") String value){
redisServiceObject.setRedisList(key,value);
return ResultMap.SUCCESS.setNewData("插入成功");
}
@ApiOperation(value = "获取redis列表全部元素")
@GetMapping(value = "/getRedisList/{key}")
public ResultMap getRedisList(@PathVariable("key") String key){
return ResultMap.SUCCESS.setNewData(redisServiceObject.getRedisList(key));
}
@ApiOperation(value = "设置redis的hsah元素")
@GetMapping(value = "/setRedisHash/{hashKey}/{key}/{value}")
public ResultMap setRedisHash(@PathVariable("hashKey") String hashKey,@PathVariable("key") String key,@PathVariable("value") String value){
redisServiceObject.setRedisHash(hashKey,key,value);
return ResultMap.SUCCESS.setNewData("设置hash成功");
}
@ApiOperation(value = "获取redis的hash元素")
@GetMapping(value = "/getRedisHash/{hashKey}/{key}")
public ResultMap getRedisHash(@PathVariable("hashKey") String hashKey,@PathVariable("key") String key){
return ResultMap.SUCCESS.setNewData(redisServiceObject.getRedisHash(hashKey,key));
}
}