引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置redis中连接的端口号和IP地址
server.port=8888
spring.redis.host=localhost
spring.redis.port=6379
用法:
package com.aaa;
import lombok.val;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.connection.DataType;
import org.springframework.data.redis.core.*;
import java.util.*;
@SpringBootTest
class Reis01ApplicationTests {
@Autowired
private StringRedisTemplate stringRedisTemplate;
//为string类型设置多个值
@Test
void contextLoads() {
ValueOperations<String, String> value = stringRedisTemplate.opsForValue();
Map<String,String> map=new HashMap<>(16);
map.put("age","23");
map.put("id","10");
value.multiSet(map);
List<String> strings = value.multiGet(Arrays.asList("age", "id"));
System.out.println(strings);
}
//key的操作
@Test
public void Key(){
//获取所有的key
Set<String> keys = stringRedisTemplate.keys("*");
System.out.println(keys);
//获取key的类型
DataType username = stringRedisTemplate.type("username");
System.out.println(username);
}
//list的操作
@Test
public void list(){
ListOperations<String, String> forList = stringRedisTemplate.opsForList();
//获取所有的值
List<String> a = forList.range("a", 0, -1);
a.forEach(b->{
System.out.println("b = " + b);
});
//获取指定键的长度
Long a1 = forList.size("a");
System.out.println(a1);
//在那个值之前或之后增加值
}
@Test
public void set(){
SetOperations<String, String> set = stringRedisTemplate.opsForSet();
//增加set
//set.add("sets","zhangsan","lisi","wangwu","1","2");
//获取set
//Set<String> sets = set.members("sets");
//sets.forEach(value->System.out.println(value));
//判断set中的某个值是否存在
Boolean member = set.isMember("sets", "lisi");
System.out.println(member);
//返回集合的个数
Long sets = set.size("sets");
System.out.println(sets);
}
//zSet
@Test
public void zSet(){
ZSetOperations<String, String> forZSet = stringRedisTemplate.opsForZSet();
//增加值
//forZSet.add("zsets", "java", 12000);
//forZSet.add("zsets", "c", 10000);
//获取zset
//Set<String> zsets = forZSet.range("zsets", 0, -1);
//System.out.println(zsets);
//统计该值在集合中的排名 正序
// Long rank = forZSet.rank("zsets", "c");
// System.out.println(rank);
//统计该值在集合中的排名 倒序
//Long aLong = forZSet.reverseRank("zsets", "c");
//System.out.println(aLong);
//范围内进行排序正序排列
//Set<String> strings = forZSet.rangeByScore("zsets", 0, 20000);
//System.out.println(strings);
//范围内进行排序倒序排列 只获取到值
//
//Set<String> sets = forZSet.reverseRangeByScore("zsets", 0, 20000);
//System.out.println(sets);
//范围内进行排序获取值和分数
Set<ZSetOperations.TypedTuple<String>> set = forZSet.rangeByScoreWithScores("zsets", 0, 20000);
set.forEach(stringTypedTuple -> {
Double score = stringTypedTuple.getScore();
String value = stringTypedTuple.getValue();
System.out.println(score+value);
});
}
//hash
@Test
public void hash(){
HashOperations<String, Object, Object> forHash = stringRedisTemplate.opsForHash();
//设置值
forHash.put("hashs","user:useranme","zhangsan");
//获取指定的key中的filed
List<Object> hashs = forHash.multiGet("hashs", Arrays.asList("user:useranme"));
hashs.forEach(has->{
System.out.println(has);
});
}
}