1.创建一个名为springboot-redis的springboot工程
2.导入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.13</version>
</dependency>
<!--swagger依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--swagger ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
3.配置yml
server:
port: 8006
spring:
redis:
database: 2
host: localhost
port: 6379
connect-timeout: 30000
mvc:
pathmatch:
matching-strategy: ant_path_matcher
4.进行swagger配置
@Configuration
@EnableSwagger2
public class Swagger2Config {
/**
* 创建API应用
* apiInfo() 增加API相关信息
* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
* 指定扫描的包路径来定义指定要建立API的目录。
* @return
*/
@Bean
public Docket coreApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(adminApiInfo())
.groupName("adminApi")
.select()
.apis(RequestHandlerSelectors.basePackage("com.xulu"))
//只显示admin下面的路径
//.paths(Predicates.and(PathSelectors.regex("/admin/.*")))
.build();
}
private ApiInfo adminApiInfo(){
return new ApiInfoBuilder()
.title("redis测试")
.description("测试redisAPI")
.version("1.0")
.contact(new Contact("Xiao Xulu","http://baidu.com","1435533194@qq.com"))
.build();
}
}
5.创建RedisStringController
@RestController
@Api(tags = "String类型")
public class RedisStringController {
@Autowired
private StringRedisTemplate redisTemplate;
/**
* 向redis存入值
* key:设置当前的key
* value:设置当前的value
* timeout:设置过期时间
* unit:设置过期时间的单位
* @return
*/
@ApiOperation("向redis存入值")
@GetMapping("/setValue")
public String setValue(){
String code = RandomUtil.randomNumbers(6);
redisTemplate.opsForValue().set("code",code,120, TimeUnit.SECONDS);
return "success:"+code;
}
/**
* 从redis读取值
* @return
*/
@ApiOperation("从redis读取值")
@GetMapping("/getValue")
public String getValue(String key){
String value = (String) redisTemplate.opsForValue().get(key);
return value;
}
/**
* 设置 key 的字符串 value 并返回其旧值
*/
@ApiOperation("设置 key 的字符串 value 并返回其旧值")
@GetMapping("/getAndSet")
public String getAndSet(String key){
String code = (String) redisTemplate.opsForValue().getAndSet(key, "123456");
return code;
}
/**
* 获取字符串的长度
*/
@ApiOperation("获取字符串的长度")
@GetMapping("/getStringSize")
public String getStringSize(String key){
Long size = redisTemplate.opsForValue().size(key);
String s = size.toString();
return s;
}
/**
* 获取key的过期时间
*/
@ApiOperation("获取key的过期时间")
@GetMapping("/getExpire")
public String getExpire(String key){
Long time = redisTemplate.getExpire(key);
String s = time.toString();
return s;
}
/**
* 删除key
*/
@ApiOperation("删除key")
@GetMapping("/delete")
public String delete(String key){
redisTemplate.delete(key);
return "success";
}
}
6.创建RedisHashController
@RestController
@Api(tags = "Hash类型")
public class RedisHashController {
@Autowired
private StringRedisTemplate redisTemplate;
/**
* 添加值
*/
@ApiOperation("添加值")
@GetMapping("/put")
public void put(String hashKey,String value){
String token = UUID.randomUUID().toString().replace("-","");
redisTemplate.opsForHash().put(token,hashKey,value);
redisTemplate.expire(token,120, TimeUnit.SECONDS);
}
/**
* 获取值
*/
@ApiOperation("获取值")
@GetMapping("/get")
public String get(String key,String hashKey){
String s = (String) redisTemplate.opsForHash().get(key, hashKey);
return s;
}
/**
* 获取所有key
*/
@ApiOperation("获取所有key")
@GetMapping("/getAllKey")
public Set<Object> getAllKeyt(String key){
Set<Object> keys = redisTemplate.opsForHash().keys(key);
return keys;
}
/**
* 获取所有value
*/
@ApiOperation("获取所有value")
@GetMapping("/getAllValue")
public List<Object> getAllValue(String key){
List<Object> values = redisTemplate.opsForHash().values(key);
return values;
}
/**
* 获取值得数量
*/
@ApiOperation("获取值的数量")
@GetMapping("/getHashSize")
public String getHashSize(String key){
Long size = redisTemplate.opsForHash().size(key);
String s = size.toString();
return s;
}
}
7.创建RedisListController
@RestController
@Api(tags = "List类型")
public class RedisListController {
@Autowired
private StringRedisTemplate redisTemplate;
/**
* 从左边开始添加
*/
@ApiOperation("从左边开始添加")
@GetMapping("/leftPush")
public String leftPush(String key,String value){
Long size = redisTemplate.opsForList().leftPush(key, value);
String s = size.toString();
return s;
}
/**
* 从左边开始添加
*/
@ApiOperation("从最后开始添加")
@GetMapping("/rightPush")
public String rightPush(String key,String value){
Long size = redisTemplate.opsForList().rightPush(key, value);
String s = size.toString();
return s;
}
/**
* 根据索引获取值
*/
@ApiOperation("根据索引获取值")
@GetMapping("/getIndex")
public String getIndex(String key,Integer index){
String value = redisTemplate.opsForList().index(key, index);
return value;
}
/**
* 根据范围获取索引值
*/
@ApiOperation("根据范围获取索引值")
@GetMapping("/getRange")
public List<String> getRange(String key,Long start,Long end){
List<String> list = redisTemplate.opsForList().range(key, start, end);
return list;
}
/**
* 通过索引设置值
*/
@ApiOperation("通过索引设置值")
@GetMapping("/setIndex")
public void setIndex(String key,Long index,String value){
redisTemplate.opsForList().set(key, index, value);
}
/**
* 移除并获取第一个元素
*/
@ApiOperation("移除并获取第一个元素")
@GetMapping("/leftPop")
public String leftPop(String key){
String s = redisTemplate.opsForList().leftPop(key);
return s;
}
/**
* 移除并获取最后一个元素
*/
@ApiOperation("移除并获取最后一个元素")
@GetMapping("/rightPop")
public String rightPop(String key){
String s = redisTemplate.opsForList().rightPop(key);
return s;
}
}
8.创建RedisSetController
@RestController
@Api(tags = "Set类型")
public class RedisSetController {
@Autowired
private StringRedisTemplate stringRedisTemplate;
/**
* 添加值
* @param values
* @return
*/
@ApiOperation("添加值")
@GetMapping("/add")
public String add(String... values){
Long size = stringRedisTemplate.opsForSet().add("三国演义", values);
String s = size.toString();
return s;
}
/**
* 获取集合大小
* @return
*/
@ApiOperation("获取集合大小")
@GetMapping("/getSetSize")
public String getSetSize(String key){
Long size = stringRedisTemplate.opsForSet().size(key);
String s = size.toString();
return s;
}
/**
* 删除元素
*/
@ApiOperation("删除元素")
@GetMapping("/remove")
public String remove(String key ,String... values){
Long count = stringRedisTemplate.opsForSet().remove(key, values);
String s = count.toString();
return s;
}
}
9.创建RedisZsetController
@RestController
@Api(tags = "zset类型")
public class RedisZsetController {
@Autowired
private StringRedisTemplate stringRedisTemplate;
/**
* 增加元素
*/
@ApiOperation("增加元素")
@GetMapping("addZset")
public boolean addZset(String key,String value,double score){
Boolean flag = stringRedisTemplate.opsForZSet().add(key, value, score);
return flag;
}
/**
* 返回元素在集合的排名,按照元素的 score 值由小到大排列
*/
@ApiOperation("返回元素在集合的排名")
@GetMapping("getSort")
public String getSort(String key,String value){
Long rank = stringRedisTemplate.opsForZSet().rank(key, value);
String s = rank.toString();
return s;
}
}
10.测试
访问http://localhost:8006/swagger-ui.html进行测试即可