马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一.情况配置
1.依赖注入
2.yaml文件配置
3.启动本地Redis服务
(或在虚拟机上启动,这里为了方便演示在本地启动)
4.启动乐成案例
5.创建一个Controller我们开始演示
- @RestController
- public class MyController {
- @Autowired
- private StringRedisTemplate redisTemplate;
-
- }
复制代码
二 String操作
- @GetMapping("/testString")
- public String test1String() throws JsonProcessingException {
- // 存储字符串
- //key为键,value为值,这里就像Map<String,String>
- redisTemplate.opsForValue().set("greeting", "Hello, World!");
- //获取key对应的值
- String valueString = redisTemplate.opsForValue().get("greeting");
- log.info("valueString:"+valueString);
- //删除key
- redisTemplate.delete("greeting");
- String valueString2 = redisTemplate.opsForValue().get("greeting");
- log.info("valueString2:"+valueString2);
- // 存储整数
- int counter = 42;
- redisTemplate.opsForValue().set("counter", String.valueOf(counter));
- String valueInteger = redisTemplate.opsForValue().get("counter");
- log.info("valueInteger:"+valueInteger);
- // 存储字节数组
- byte[] binaryData = "some binary data".getBytes();
- redisTemplate.opsForValue().set("binary:key", Arrays.toString(binaryData));
- String valueArray = redisTemplate.opsForValue().get("binary:key");
- log.info("valueArray:"+valueArray);
- // 存储 JSON 对象
- User user = new User("John", "123");
- //Json序列化
- ObjectMapper objectMapper = new ObjectMapper();
- String jsonString = objectMapper.writeValueAsString(user);
- redisTemplate.opsForValue().set("user:123", jsonString);
- String valueJson = redisTemplate.opsForValue().get("user:123");
- log.info("valueJson:"+valueJson);
- /* //存储空值null
- redisTemplate.opsForValue().set("key", null);//报错:Value must not be null
- String valueNull = redisTemplate.opsForValue().get("key");
- log.info("valueNull:"+valueNull);*/
- return "OK";
- }
复制代码 运行结果
三.List操作
- @GetMapping("/testList")
- @ResponseBody
- public String testList() {
- //清空redis中所有数据,防止影响其他测试,慎用
- redisTemplate.getConnectionFactory().getConnection().flushAll();
- String ListNull = redisTemplate.opsForList().leftPop("key");
- System.out.println("ListNull: "+ListNull);
- //存储一个值,键是key,值是a
- redisTemplate.opsForList().leftPush("key", "a");
- //存储多个值,但是键值键一样都是key,值是b,c,d
- redisTemplate.opsForList().leftPushAll("key", "b", "c", "d");
- //获取第一个元素
- String firstElement = redisTemplate.opsForList().leftPop("key");
- System.out.println("frist:"+firstElement);
- //获取列表key的第2到第3个元素(索引从0开始),但是这里获取之后并未取出来
- List<String> values = redisTemplate.opsForList().range("key", 1, 2);
- System.out.println(values);
- //获取列表key的最后一个元素
- String finalElement = redisTemplate.opsForList().leftPop("key");
- System.out.println("finalElement: "+finalElement);
- return "OK";
- }
复制代码 运行结果
- ListNull: null
- frist:d
- [b, a]
- finalElement: c
复制代码 注意:leftPush()是往左存储,终极存储后顺序是的,d,c,b,a
四.Hash操作
- @GetMapping("/testHashmap")
- @ResponseBody
- public String testHashmap() {
- //清空redis中所有数据,防止影响其他测试,慎用
- redisTemplate.getConnectionFactory().getConnection().flushAll();
- //向Redis中插入一个Hash键值对,键为 "key",字段为 "name",值为 "zhangsan"
- redisTemplate.opsForHash().put("key", "name", "zhangsan");
- //从Redis中获取刚刚插入的Hash值
- String value = (String) redisTemplate.opsForHash().get("key", "name");
- System.out.println(value);
- //删除Hash中的字段 "name"
- redisTemplate.opsForHash().delete("key", "name");
- //检查字段 "name" 是否还存在于Hash中
- boolean ok = redisTemplate.opsForHash().hasKey("key", "name");
- System.out.println(ok);
- //删除整个Hash键 "key"
- redisTemplate.delete("key");
- return "OK";
- }
复制代码
运行结果
五.Set
- @GetMapping("/testSet")
- @ResponseBody
- public String testSet() {
- //清空redis中所有数据,防止影响其他测试,慎用
- redisTemplate.getConnectionFactory().getConnection().flushAll();
- //向Redis的key中添加三个元素:aaa、bbb、ccc
- redisTemplate.opsForSet().add("key", "aaa", "bbb", "ccc");
- //检查key中是否包含aaa
- boolean ok = redisTemplate.opsForSet().isMember("key", "aaa");
- System.out.println(ok);
- //从key中移除aaa
- redisTemplate.opsForSet().remove("key", "aaa");
- //获取key中剩余元素的数量
- long n = redisTemplate.opsForSet().size("key");
- System.out.println(n);
- //删除key
- redisTemplate.delete("key");
- return "OK";
- }
复制代码 运行结果
六.ZSet
- @GetMapping("/testZSet")
- @ResponseBody
- public String testZSet() {
- //向Redis中名为key的有序集合添加三个成员:吕布、赵云和典韦,分别赋予不同的分数
- redisTemplate.opsForZSet().add("key", "吕布", 100);
- redisTemplate.opsForZSet().add("key", "赵云", 98);
- redisTemplate.opsForZSet().add("key", "典⻙", 95);
- //获取并打印分数最高的前3个成员,切记ZSet是有序集合
- Set<String> values = redisTemplate.opsForZSet().range("key", 0, 2);
- System.out.println(values);
- //统计并打印分数在95到100之间的成员数量
- long n = redisTemplate.opsForZSet().count("key", 95, 100);
- System.out.println(n);
- redisTemplate.delete("key");
- return "OK";
- }
复制代码 运行结果
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |