zoukankan      html  css  js  c++  java
  • redis的使用场景

    为什么使用 

    1、中间缓存 
    将所有的数据先保存到缓存中,然后再存入mysql中,减小数据库压力,提高效率。 
    但是当数据再次增加到又一个量级,上面的方式也不能满足需求,由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力。读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性。Mysql的master-slave模式成为这个时候的网站标配了

    2、主从分离模式 

    持久化保证了即使redis服务重启也会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可以避免这种单点故障

    从服务器不间断的向主redis发送ping,主服务器如果没有宕机会回应从redis,PONG,如果从redis未收到主redis的回应,会直接作为主redis 替换掉宕机的服务器
    在redis的高速缓存,MySQL的主从复制,读写分离的基础分表分库模式 

    3、 nosql数据库的优势 
    1)易扩展 
    这些类型的数据存储不需要固定的模式,无需多余的操作就可以进行横向的扩展。相对于关系型数据库可以减少表和字段特别多的情况。也无型之间在架构的层面上带来了可扩展的能力 
    2)大数据量提高性能 
    3)多样灵活的数据模型 
    在nosql中不仅可以存储String,hash,set、Zset等数据类型,还可以保存javaBean以及多种复杂的数据类型。 
    4、 NoSql的应用 
    1) 如淘宝每个节日都会有比较热门的搜索显示在搜索框,当节日过去关键字自动删除,为了便于管理,可以将这些数据保存在redis数据库中,并设置过期时间,到达时间就自动删除。 
    2)为了缓解数据库压力,微博首先将发送的微博保存到redis数据库,自己可以立即查看到,然后将内存中的数据同步到关系型数据库之上,这时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,由于MyISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。

    理论:

    为什么不使用memcached:mysql需要不断进行拆表,memached也要跟着不断扩容,占用大量开发时间

    redis缓存放在内存中所以处理速度会比较快(吧数据库的热点数据放到缓存里面这样会加速访问),
    非持久化RDB内存快照和AOF日志文件:保持磁盘中aof(执行程序时持续将数据进行备份)rdb(执行rdbsave方法是才会去备份)

    redis好处:支持主从服务器的数据同步,主服务器可以同步到从服务器(避免主服务器单点故障,集群一般采用2台主服务器做双机热备),系统泵了可用持久化备份文件恢复数据

    redis最好不用用主服务器做持久化数据,rdb影响性能,aop影响重启恢复速度

    适合场景:回话缓存Session Cache,全页缓存(FPC),排行榜/计数器(shortd set,set)等

     jedis是redis提供的数据源访问和一些redis基础操作方法 ()

    群交流(262200309)
  • 相关阅读:
    n8n 基于node 的流程自动化工具
    kubectl-trace 基于bpftrace 的kubernetes 集群性能分析工具
    bcc 基于bpf 分析linux 系统性能的强大工具包
    使用arthas 生成火焰图分析jvm
    openjdk11 stretch基础镜像无法找到对应openjdk dbg 包的问题
    async-profiler 容器使用常见问题
    使用jattach 在host 节点查看容器jvm信息
    使用async-profiler简单分析zeebe 工作流引擎的性能
    minio select api 试用
    使用zeebe DebugHttpExporter 查看zeebe 工作流信息
  • 原文地址:https://www.cnblogs.com/webster1/p/6647595.html
Copyright © 2011-2022 走看看