Redis 简单上手

一、 Docker 安装 Redis

sudo docker run -p 6379:6379 --name redis 
-v /home/appuser/redis/data:/data \ 
-v /home/appuser/redis/conf/redis.conf:/etc/redis/redis.conf \ 
-d redis redis-server /etc/redis/redis.conf

        进入 docker 的 redis 容器进行操作

sudo docker exec -it redis redis-cli

         也可以在下面的 github 上下载 redis 的可视化管理工具进行操作

        https://github.com/uglide/RedisDesktopManager/releases/tag/0.9.3

二、 redis 的五大数据类型

        String : 相当于 Java 的 HashMap< String , String >

        Hash : 相当于 Java 的 HashMap< String , HashMap< String , String > >

        List : 相当于 Java 的 HashMap< String , LinkedList< String > >

        Set : 相当于 Java 的 HashMap< String , HashSet< String > >

        Zset : 与 Set 类似,后面的 HashSet< String > 中的每个元素都有一个 Score 评分

三、 redis 持久化

        redis 有两种持久化方式 RDB 和 AOF

3.1 RDB

        RDB 指在一定的时间间隔下将内存上的 redis 数据快照(Snapshot)写到磁盘上

        redis 会 Fork 一个子进程,将内存上的 redis 数据先写入一个临时文件,再将这个文件替换掉上次持久化好的文件。

       

        优点: 适合大规模的数据恢复,且恢复速度快

                    对数据完整性和一致性要求不高的适用

        缺点: 在 Fork 进行 RDB 持久化时,数据会被克隆一份,因此需要2倍的空间

                    在备份时,可能因 Redis 意外 down 掉,会导致近期的操作修改数据丢失

3.2 AOF

        AOF 指以日志的形式记录 redis 的每个修改或增写操作,

        redis 在恢复启动的时候,会读取该日志文件重新构建恢复之前的数据。

        客户端的请求写命令会 append 到 AOF 缓冲区 -> AOF 缓冲区根据策略同步到磁盘上的 AOF 文件中 -> AOF过大时会进行重写 -> redis 重启恢复时将读取该文件恢复数据

         优点:数据恢复有较高的一致性

         缺点:比 RDB 更占用磁盘空间

                    恢复速度慢

四、 Redis 应用问题

4.1 缓存穿透

        问题描述:

        key 对应的数据在 redis 上不存在,服务端会到数据库上去查找该数据,而数据库中对应的数据也不存在

        则会被利用漏洞,发送对该 key 的大量请求,绕过 redis 压垮数据库

        解决方案 :

        对空值进行缓存

                            

4.2 缓存击穿

        问题描述:

         一个设置有过期时间热点 key ,即该 key 的请求和访问量大。在该 key 过期后,其大量的请求和访问会瞬间打到数据库上

         解决方案: 预先设置热门数据

                            实时调整 key 的过期时间

                            使用锁,在 key 过期后,加锁只允许少量的请求去访问数据库

4.3 缓存雪崩

        问题描述:

        有多个热点数据 key 在短时间内都过期或失效,导致大量的请求压到数据库上

        跟缓存击穿的区别是:雪崩是有多个 key ,而击穿是一个 key   

        解决方案:

        构建多级缓存架构

        使用锁或队列

        将缓存失效时间分散开

        设置过期标志更新缓存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值