Redis基础简介
为什么使用Redis?
随着互联网的快速发展,传统的关系型数据库如Mysql已经不能适⽤所有的场景了,⽐如秒杀的库存扣减,APP⾸⻚的访问流量⾼峰等等,都很容易把数据库打崩,所以引⼊了缓存中间件,⽬前市⾯上⽐较常⽤的缓存中间件有Redis 和 Memcached 不过中和考虑了他们的优缺点,最后选择了Redis。
Redis有哪些数据结构?
常用五种: 字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。(HyperLogLog、Geo、Pub/Sub。)
- Redis 哈希(Hash)
-Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
首先,我们从作用上理解hash存在的意义:Redis hash 是一个 string 类型的 field 和 value
的映射表,hash 特别适合用于存储对象。从另一个方面来说是,hash可以聚合很多类似的属性,这是string中难以实现的。
hset 设置单个 field -> value ;hmset 批量添加元素 ;hget 获取某字段值
hmget 批量获取值 ;hgetall 获取所有hash的kv ;hincrby 增加x某字段;hdel 删除某字段
如何进行存储获取
看下源码实现
public boolean hset(String key, String item, Object value) { try { this.redisTemplate.opsForHash().put(key, item, value); return true; } catch (Exception var5) { var5.printStackTrace(); return false; } } ```
如果有⼤量的key需要设置同⼀时间过期,⼀般需要注意什么?
如果⼤量的key过期时间设置的过于集中,到过期的那个时间点,redis可能会出现短暂的卡顿现象。严重的话会出现缓存雪崩,我们⼀般需要在时间上加⼀个随机值,使得过期时间分散⼀些。
电商⾸⻚经常会使⽤定时任务刷新缓存,可能⼤量的数据失效时间都⼗分集中,如果失效时间⼀样,⼜刚好在失效的时间点⼤量⽤户涌⼊,就有可能造成缓存雪崩
Redis是怎么持久化的?
- RDB 快照 将某一时刻的所有数据写入硬盘中
- AOF 日志 记录服务器的写操作 每次重启服务器会执行这些命令来恢复数据
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/83593.html