依赖

<!--redis依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

application.properties

#redis

#redis主机地址
spring.redis.host=127.0.0.1
#端口
spring.redis.port=6379
#数据库
spring.redis.database=1
#密码
spring.redis.password=root

配置类

package com.it.seckill.config;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
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.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
* @Author: 羡羡
* @Date: 2021/12/01/09:46
*
* redis配置类
*/
//配置类
@Configuration
//开启注解
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {

/**
* 返回RedisTemplate对象 spring容器
* @param factory
* @return
*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory){
RedisTemplate<String, Object> template=new RedisTemplate<>();
//配置工厂
template.setConnectionFactory(factory);
//序列化和反序列化redis的值 jdk默认序列化
Jackson2JsonRedisSerializer jackson=new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper objmap=new ObjectMapper();
//指定序列化域 any包括所有private 和 public
objmap.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
//不允许是final型
objmap.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson.setObjectMapper(objmap);

// 值采用json序列化
template.setValueSerializer(jackson);
//使用StringRedisSerializer来序列化和反序列化redis的key值
template.setKeySerializer(new StringRedisSerializer());

//设置hash key value的序列化模式
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(jackson);
template.afterPropertiesSet();
return template;
}
}
* String redisTemplate.opsForValue()

* hash redisTemplate.opsForhash()

* set redisTemplate.opsForset()

* list redisTemplate.opsForlist()

* sortset redisTemplate.opsForzset()

String操作

存取对象

package com.it.seckill.controller;

import com.it.seckill.config.RedisConfig;
import com.it.seckill.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;
import java.util.concurrent.TimeUnit;

/**
* @Author: 羡羡
* @Date: 2021/12/01/10:33
*
* 使用redis模板配置类
*
*
*
* String redisTemplate.opsForValue()
* hash redisTemplate.opsForhash()
* set redisTemplate.opsForset()
* list redisTemplate.opsForlist()
* sortset redisTemplate.opsForzset()
*
*/
@RestController
@RequestMapping("/redis2")
public class StringController {

@Autowired
RedisTemplate redisTemplate;

/**
* 存对象数据
* @return
*/
@RequestMapping("/put")
public String put(){
User us=new User(3,"张三",new Date());
redisTemplate.opsForValue().set("reidsz",us);
return "putok";
}

/**
* 取对象数据
* @return
*/
@RequestMapping("/get")
public Object get(){
User us= (User) redisTemplate.opsForValue().get("reidsz");
return us;
}



/**
* 删除
* @return
*/
@RequestMapping("/del")
public String delkey(){
redisTemplate.delete("reidsz");
return "delok";
}

/**
* 定时删除
* @return
*/
@RequestMapping("/tdel")
public String timdel(){
redisTemplate.expire("reidsz",60, TimeUnit.SECONDS);
return "stringtimedel";
}

}

Hash操作

package com.it.seckill.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

/**
* @Author: 羡羡
* @Date: 2021/12/01/11:28
*/
@RestController
@RequestMapping("/hashredis")
public class HashController {

@Autowired
RedisTemplate redisTemplate;

/**
* 放值hash
* @return
*/
@RequestMapping("/putha")
public String putha(){
redisTemplate.opsForHash().put("hase1","name","渣男");
return "puthash";
}

/**
* 取值hash
* @return
*/
@RequestMapping("/getha")
public String getha(){
String st= (String) redisTemplate.opsForHash().get("hase1","name");
System.out.println(st);
return "getha";
}

/**
* 删除hash
* @return
*/
@RequestMapping("/delha")
public String deha(){
redisTemplate.delete("hase1");
return "Delsu";
}

/**
* 定时删除
* @return
*/
@RequestMapping("/tiemdel")
public String time(){
redisTemplate.expire("hase1",30, TimeUnit.SECONDS);
return "timede";
}
}

List操作

package com.it.seckill.controller;

import com.it.seckill.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;

/**
* @Author: 羡羡
* @Date: 2021/12/01/10:59
*/

@RestController
@RequestMapping("/listredis")
public class ListController {

@Autowired
RedisTemplate redisTemplate;

/**
* 放list
* @return
*/
@RequestMapping("/putlis")
public String pulist(){
User us=new User(1,"张三",new Date());
User us2=new User(2,"张三2",new Date());
List lis=new ArrayList();
lis.add(us);
lis.add(us2);
redisTemplate.opsForList().leftPushAll("jlist",lis);
return "putlist";
}

/**
* 取出list
* @return
*/
@RequestMapping("/getlis")
public List getlis(){
List lis= redisTemplate.opsForList().range("jlist",0,-1);
return lis;
}

/**
* 删除
* @return
*/
@RequestMapping("/dellist")
public String del(){
redisTemplate.delete("jlist");
return "delsu";
}

/**
* 定时删除
* @return
*/
@RequestMapping("/timedel")
public String timde(){
redisTemplate.expire("jlist",60, TimeUnit.SECONDS);
return "tiemel";
}
}

set操作

package com.it.seckill.controller;

import com.it.seckill.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;
import java.util.Set;
import java.util.concurrent.TimeUnit;

/**
* @Author: 羡羡
* @Date: 2021/12/01/14:55
*/
@RestController
@RequestMapping("/setredis")
public class SetController {

@Autowired
RedisTemplate redisTemplate;

/**
* 放set
* @return
*/
@RequestMapping("/putset")
public String putset(){
User us=new User(1,"李四",new Date());
redisTemplate.opsForSet().add("se1",us);
return "putsu";
}

/**
* 取get
* @return
*/
@RequestMapping("/getset")
public String getset(){
Set se=redisTemplate.opsForSet().members("se1");
System.out.println(se);
return "getsu";
}

/**
* 删除Set
* @return
*/
@RequestMapping("/delset")
public String delset(){
redisTemplate.delete("se1");
return "deset";
}

/**
* 定时删除
* @return
*/
@RequestMapping("/dsdel")
public String timedel(){
redisTemplate.expire("se1",30, TimeUnit.SECONDS);
return "desul";
}
}

sortset操作

有序set

package com.it.seckill.controller;

import com.it.seckill.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;
import java.util.Set;
import java.util.concurrent.TimeUnit;

/**
* @Author: 羡羡
* @Date: 2021/12/01/15:11
*/
@RestController
@RequestMapping("/sort")
public class SortSetController {

@Autowired
RedisTemplate redisTemplate;

/**
* 放sortset
* @return
*/
@RequestMapping("/putsort")
public String putsort(){
redisTemplate.opsForZSet().add("class","c1901",100);
return "sortsu";
}

/**
* 取出
* @return
*/
@RequestMapping("/getsort")
public String getsort(){
Set cf=redisTemplate.opsForZSet().range("class",0,-1);
System.out.println(cf);
return "setget";
}

/**
* 删除sortset
* @return
*/
@RequestMapping("/delsort")
public String desort(){
redisTemplate.delete("class");
return "delsort";
}



/**
* 定时删除sort_set
* @return
*/
@RequestMapping("/timedel")
public String tdel(){
redisTemplate.expire("class",30, TimeUnit.SECONDS);
return "tdel";
}

}