Redis基础简介(一)

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是怎么持久化的?

  1. RDB 快照 将某一时刻的所有数据写入硬盘中
  2. AOF 日志 记录服务器的写操作 每次重启服务器会执行这些命令来恢复数据
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值