零:在test测试类下创建一个类
@SpringBootTest
public class SpringDateRedisTest {...
}
一:五大操作类型
@Autowiredprivate RedisTemplate redisTemplate;@Testpublic void testRedisTemplate() {System.out.println(redisTemplate);ValueOperations valueOperations = redisTemplate.opsForValue(); //操作字符串类型数据HashOperations hashOperations = redisTemplate.opsForHash(); //操作哈希类型的数据ZSetOperations zSetOperations = redisTemplate.opsForZSet(); //操作zsetListOperations listOperations = redisTemplate.opsForList(); //操作list集合类型数据SetOperations setOperations = redisTemplate.opsForSet(); //操作set}
二:操作字符串的数据
@Testpublic void testString() {// set get 设置键值对并获取值redisTemplate.opsForValue().set("city", "北京");String city = (String) redisTemplate.opsForValue().get("city");System.out.println(city);// setex 设置保存时间:3分钟redisTemplate.opsForValue().set("code", "1234", 3, TimeUnit.MINUTES);// setnx 如果键不存在,则设置键值对redisTemplate.opsForValue().setIfAbsent("lock", 1);redisTemplate.opsForValue().setIfAbsent("lock", 2);}
三:操作哈希类型的数据
@Testpublic void testHash() {// hset 添加哈希字段和值HashOperations hashOperations = redisTemplate.opsForHash();hashOperations.put("100", "name", "zhangsan");hashOperations.put("100", "age", "18");// hget 获取哈希字段的值String name = (String) hashOperations.get("user:1", "name");System.out.println(name);// hkeys 获取哈希的所有字段Set keys = hashOperations.keys("100");System.out.println(keys);// hvals 获取哈希的所有值List values = hashOperations.values("100");System.out.println(values);// hdel 删除哈希字段hashOperations.delete("100", "age");}
四:操作list集合类型的数据
@Testpublic void testList() {// lpush 将元素从左侧插入列表ListOperations listOperations = redisTemplate.opsForList();listOperations.leftPushAll("list", "a", "b", "c");listOperations.leftPush("list", "d");// lrange 获取列表指定范围的元素List list = listOperations.range("list", 0, -1);System.out.println(list);// lpop 从右侧弹出列表的元素aObject list1 = listOperations.rightPop("list");System.out.println(list1);// llen 获取列表的长度Long size = listOperations.size("list");System.out.println(size);}
五:操作set集合类型的数据
@Testpublic void testSet() {//sadd 添加元素到集合SetOperations setOperations = redisTemplate.opsForSet();setOperations.add("set1", "a", "b", "c", "d");setOperations.add("set2", "a", "b", "x", "y");//smembers 获取集合的所有元素Set members = setOperations.members("set1");System.out.println(members);//scard 获取集合的长度Long size = setOperations.size("set1");System.out.println(size);//sinter 求交集Set intersect = setOperations.intersect("set1", "set2");System.out.println(intersect);//sunion 求并集Set union = setOperations.union("set1", "set2");System.out.println(union);//srem 删除集合中的元素setOperations.remove("set1", "a","b");}
六:操作zset类型的数据
@Testpublic void testZset() {//zadd 添加元素到zsetZSetOperations zSetOperations = redisTemplate.opsForZSet();zSetOperations.add("zset", "a", 10);zSetOperations.add("zset", "b", 12);zSetOperations.add("zset", "c", 9);//zrange 获取指定范围的元素Set range = zSetOperations.range("zset", 0, -1);System.out.println(range);//zincrby 根据元素的分数进行排序,并返回元素zSetOperations.incrementScore("zset", "c", 10);//zcrem 删除元素zSetOperations.remove("zset", "a", "b");}
七:操作通用类型的数据
@Testpublic void testCommand() {//keys 获取所有键Set keys = redisTemplate.keys("*");System.out.println(keys);//exists 判断键是否存在Boolean name = redisTemplate.hasKey("name");Boolean set1 = redisTemplate.hasKey("set1");System.out.println(name);System.out.println(set1);//type 获取键的类型for (Object key: keys){DataType type = redisTemplate.type(key);System.out.println(type.name());}//del 删除键redisTemplate.delete("set1");}