目录
6.1 sadd、smembers、srem 和 sismember
1.引入依赖
2.配置文件
3.字符串操作
3.1 mget 和 mset
@RequestMapping("/redis")
@RestController
public class MyController {
@Autowired
private StringRedisTemplate redisTemplate;
@RequestMapping("/testString")
public String testString() {
redisTemplate.opsForValue().set("key1","111");
HashMap<String,String> map = new HashMap<>();
map.put("key2","222");
map.put("key3","333");
//multiSet 相当于 redis 中的 mset
redisTemplate.opsForValue().multiSet(map);
String ret = redisTemplate.opsForValue().get("key1");
System.out.println("ret: " + ret);
List<String> list = new ArrayList<>();
list.add("key2");
list.add("key3");
//multiGet 相当于 redis 中的 mget
List<String> values = redisTemplate.opsForValue().multiGet(list);
System.out.println("values: " + values);
ret = redisTemplate.opsForValue().get("key4");
System.out.println("ret: " + ret);
return "ok";
}
}
3.2 getrange 和 setrange
@RequestMapping("/redis")
@RestController
public class MyController {
@Autowired
private StringRedisTemplate redisTemplate;
@RequestMapping("/testString")
public String testString() {
redisTemplate.opsForValue().set("key1","111");
//redis 中 setrange
redisTemplate.opsForValue().set("key1","abc",2);
String ret = redisTemplate.opsForValue().get("key1");
System.out.println("ret: " + ret);
//redis 中 getrange
ret = redisTemplate.opsForValue().get("key1",0,3);
System.out.println("ret: " + ret);
return "ok";
}
}
3.3 append、incr 和 decr
@RequestMapping("/redis")
@RestController
public class MyController {
@Autowired
private StringRedisTemplate redisTemplate;
@RequestMapping("/testString")
public String testString() {
redisTemplate.opsForValue().set("key1","111");
Long tmp = redisTemplate.opsForValue().size("key1");
System.out.println("tmp: " + tmp);
tmp = redisTemplate.opsForValue().increment("key1",1);
System.out.println("tmp: " + tmp);
tmp = redisTemplate.opsForValue().decrement("key1",10);
System.out.println("tmp: " + tmp);
redisTemplate.opsForValue().append("key1","abc");
String ret = redisTemplate.opsForValue().get("key1");
System.out.println("ret: " + ret);
return "ok";
}
}
4.列表操作
4.1 lpush 和 lpop 和 lrange
@RequestMapping("/testList")
public String testList() {
//先清空数据库
redisTemplate.execute((RedisConnection connection) -> {
//execute 要求回调方法必须写 return 语句
connection.flushAll();
return null;
});
// lpush
redisTemplate.opsForList().leftPush("key1","a");
redisTemplate.opsForList().leftPushAll("key1","b","c","d");
// lrange
List<String> ret = redisTemplate.opsForList().range("key1",0,-1);
System.out.println("ret: " + ret);
// lpop
redisTemplate.opsForList().leftPop("key1");
ret = redisTemplate.opsForList().range("key1",0,-1);
System.out.println("ret: " + ret);
return "ok";
}
4.2 rpush 和 rpop
@RequestMapping("/testList")
public String testList() {
//先清空数据库
redisTemplate.execute((RedisConnection connection) -> {
//execute 要求回调方法必须写 return 语句
connection.flushAll();
return null;
});
// rpush
redisTemplate.opsForList().rightPush("key1","a");
redisTemplate.opsForList().rightPushAll("key1","b","c","d");
// lrange
List<String> ret = redisTemplate.opsForList().range("key1",0,-1);
System.out.println("ret: " + ret);
// rpop
redisTemplate.opsForList().rightPop("key1");
ret = redisTemplate.opsForList().range("key1",0,-1);
System.out.println("ret: " + ret);
return "ok";
}
4.3 llen 和 lrem
@RequestMapping("/testList")
public String testList() {
//先清空数据库
redisTemplate.execute((RedisConnection connection) -> {
//execute 要求回调方法必须写 return 语句
connection.flushAll();
return null;
});
redisTemplate.opsForList().rightPush("key1","a");
redisTemplate.opsForList().rightPushAll("key1","b","c","d");
Long ret = redisTemplate.opsForList().size("key1");
System.out.println("ret: " + ret);
redisTemplate.opsForList().remove("key1",1,"a");
List<String> tmp = redisTemplate.opsForList().range("key1",0,-1);
System.out.println("tmp: " + tmp);
return "ok";
}
5.哈希表操作
5.1 hset、hget、hexists 和 hdel
@RequestMapping("/testHash")
public String testHash() {
redisTemplate.execute((RedisConnection connection) -> {
connection.flushAll();
return null;
});
// hset
redisTemplate.opsForHash().put("key1","f1","111");
HashMap<String,String> map = new HashMap<>();
map.put("f2","222");
map.put("f3","333");
redisTemplate.opsForHash().putAll("key1",map);
// hget
String ret = (String) redisTemplate.opsForHash().get("key1","f1");
System.out.println("ret: " + ret);
//hexists
Boolean tmp = redisTemplate.opsForHash().hasKey("key1","f1");
System.out.println("tmp: " + tmp);
//hdel
redisTemplate.opsForHash().delete("key1","f1");
ret = (String) redisTemplate.opsForHash().get("key1","f1");
System.out.println("ret: " + ret);
return "ok";
}
5.2 hkeys 和 hvals
@RequestMapping("/testHash")
public String testHash() {
redisTemplate.execute((RedisConnection connection) -> {
connection.flushAll();
return null;
});
redisTemplate.opsForHash().put("key1","f1","111");
HashMap<String,String> map = new HashMap<>();
map.put("f2","222");
map.put("f3","333");
redisTemplate.opsForHash().putAll("key1",map);
Set<Object> ret = redisTemplate.opsForHash().keys("key1");
System.out.println("ret: " + ret);
List<Object> tmp = redisTemplate.opsForHash().values("key1");
System.out.println("tmp: " + tmp);
return "ok";
}
6.集合操作
6.1 sadd、smembers、srem 和 sismember
@RequestMapping("/testSet")
public String testSet() {
redisTemplate.execute((RedisConnection connection) -> {
connection.flushAll();
return null;
});
redisTemplate.opsForSet().add("key1","111","222","333");
Set<String> ret = redisTemplate.opsForSet().members("key1");
System.out.println("ret: " + ret);
redisTemplate.opsForSet().remove("key1","111");
Boolean tmp = redisTemplate.opsForSet().isMember("key1","111");
System.out.println("tmp: " + tmp);
ret = redisTemplate.opsForSet().members("key1");
System.out.println("ret: " + ret);
return "ok";
}
6.2 scard、spop 和 sinter
@RequestMapping("/testSet")
public String testSet() {
redisTemplate.execute((RedisConnection connection) -> {
connection.flushAll();
return null;
});
redisTemplate.opsForSet().add("key1","111","222","333");
redisTemplate.opsForSet().add("key2","111","222","444");
Long ret = redisTemplate.opsForSet().size("key1");
System.out.println("ret: " + ret);
Set<String> values = redisTemplate.opsForSet().intersect("key1","key2");
System.out.println("values: " + values);
ret = redisTemplate.opsForSet().remove("key1","222");
System.out.println("ret: " + ret);
values = redisTemplate.opsForSet().members("key1");
System.out.println("values: " + values);
return "ok";
}
7.有序集合操作
7.1 zadd、zrange、zrem 和 zcard
@RequestMapping("/testZSet")
public String testZSet() {
redisTemplate.execute((RedisConnection connection) -> {
connection.flushAll();
return null;
});
redisTemplate.opsForZSet().add("key1","zhangsan",80);
redisTemplate.opsForZSet().add("key1","lis",90);
redisTemplate.opsForZSet().add("key1","wangwu",75);
Set<ZSetOperations.TypedTuple<String>> ret =
redisTemplate.opsForZSet().rangeWithScores("key1",0,-1);
System.out.println("ret: " + ret);
Long tmp = redisTemplate.opsForZSet().size("key1");
System.out.println("tmp: " + tmp);
tmp = redisTemplate.opsForZSet().remove("key1","zhangsan");
System.out.println("tmp: " + tmp);
ret = redisTemplate.opsForZSet().rangeWithScores("key1",0,-1);
System.out.println("ret: " + ret);
return "ok";
}
7.2 zscore 和 zrank
@RequestMapping("/testZSet")
public String testZSet() {
redisTemplate.execute((RedisConnection connection) -> {
connection.flushAll();
return null;
});
redisTemplate.opsForZSet().add("key1","zhangsan",80);
redisTemplate.opsForZSet().add("key1","lis",90);
redisTemplate.opsForZSet().add("key1","wangwu",75);
Double ret = redisTemplate.opsForZSet().score("key1","zhangsan");
System.out.println("ret: " + ret);
Long tmp = redisTemplate.opsForZSet().rank("key1","lis");
System.out.println("tmp: " + tmp);
return "ok";
}