StringRedisTemplate操作redis数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了StringRedisTemplate操作redis数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2995字,纯文字阅读大概需要5分钟。
内容图文
![StringRedisTemplate操作redis数据](/upload/InfoBanner/zyjiaocheng/908/8220a236524c46a08f90777daef2161c.jpg)
StringRedisTemplate操作redis数据
StringRedisTemplate与RedisTemplate区别点
-
两者的关系是StringRedisTemplate继承RedisTemplate。
-
两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面的数据,RedisTemplate只能管理RedisTemplate中的数据。
- 其实他们两者之间的区别主要在于他们使用的序列化类:
RedisTemplate使用的是JdkSerializationRedisSerializer 存入数据会将数据先序列化成字节数组然后在存入Redis数据库。
StringRedisTemplate使用的是StringRedisSerializer
- 使用时注意事项:
- RedisTemplate使用时常见问题:
redisTemplate 中存取数据都是字节数组。当redis中存入的数据是可读形式而非字节数组时,使用redisTemplate取值的时候会无法获取导出数据,获得的值为null。可以使用 StringRedisTemplate 试试。
RedisTemplate中定义了5种数据结构操作
|
StringRedisTemplate常用操作
stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间 stringRedisTemplate.boundValueOps("test").increment(-1);//val做-1操作 stringRedisTemplate.opsForValue().get("test")//根据key获取缓存中的val stringRedisTemplate.boundValueOps("test").increment(1);//val +1 stringRedisTemplate.getExpire("test")//根据key获取过期时间 stringRedisTemplate.getExpire("test",TimeUnit.SECONDS)//根据key获取过期时间并换算成指定单位 stringRedisTemplate.delete("test");//根据key删除缓存 stringRedisTemplate.hasKey("546545");//检查key是否存在,返回boolean值 stringRedisTemplate.opsForSet().add("red_123", "1","2","3");//向指定key中存放set集合 stringRedisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS);//设置过期时间 stringRedisTemplate.opsForSet().isMember("red_123", "1")//根据key查看集合中是否存在指定数据 stringRedisTemplate.opsForSet().members("red_123");//根据key获取set集合?
StringRedisTemplate的使用
springboot中使用注解@Autowired 即可
1 2 |
@Autowired
public StringRedisTemplate stringRedisTemplate;
|
1 |
<span style= "font-size: 16px;" ><strong>使用样例:</strong></span>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
@RestController
@RequestMapping ( "/user" )
public class UserResource {
???? private static final Logger log = LoggerFactory.getLogger(UserResource. class );
???? @Autowired
???? private UserService userService;
????
???? @Autowired
???? public StringRedisTemplate stringRedisTemplate;
????
???? @RequestMapping ( "/num" )
???? public String countNum() {
???????? String userNum = stringRedisTemplate.opsForValue().get( "userNum" );
???????? if (StringUtils.isNull(userNum)){
???????????? stringRedisTemplate.opsForValue().set( "userNum" , userService.countNum().toString());
???????? }
???????? return userNum;
???? }<br>}
|
内容总结
以上是互联网集市为您收集整理的StringRedisTemplate操作redis数据全部内容,希望文章能够帮你解决StringRedisTemplate操作redis数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。