【Redis】Redis入门了解

迈不过友情╰ 2022-06-16 14:18 699阅读 0赞

Redis

Redis是一个速度很快的非关系数据库,可存储key和5种不同类型的value的映射关系,可以将存在内存的键值对数据持久化到硬盘,可以使用复制特性扩展读性能,还可以使用客户端分片来扩展写性能。

与其他数据库和软件的对比

这里写图片描述

为什么用?

1、memcache只能用append将数据添加到已有字符的末尾,而删除则是通过黑名单来隐藏列表里的元素,从而避免对元素执行读取、更新、写入(包括在一次数据库查询之后执行的memcached写入)等操作。Redis的LIST和SET可以直接添加或删除元素。

2、使用Redis可以让代码变得简短、易懂、易维护,代码运行速度更快,它的效率和易用性比关系数据库要好的多。

3、数据库的一个常见用法是存储长期的报告数据,并将这些报告数据用作固定时间范围内的聚合数据。数据库对表的操作频繁,速度慢,而Redis可以使用原子的INCR命令计算聚合数据,因Redis数据存在内存,所以执行速度很快。

4、另外Redis可以避免写入不必要的临时数据,改善程序的性能。

Redis应用场景:

目前全球最大的Redis用户是新浪微博。在新浪微博Redis的部署场景很多,大概分为如下两种:
1、应用程序直接访问Redis数据库
这里写图片描述

2、应用程序直接访问Redis,只有Redis访问失败时才访问MySQL
这里写图片描述

一、Redis基础:

开源,Key-Value数据库,提供多种语言的API。
1、5种数据类型
这里写图片描述
2、持久化
通常,Redis将数据存储于内存中,或被配置为使用虚拟内存,通过两种方式可以实现数据持久化:使用截图方式,将内存中数据不断写入磁盘;或使用类似MySQL的日志方式,记录每次更新的日志。

3、主从同步
Redis支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。

4、Redis适用场景

  1. 取最新N个数据(如:网站最新文章)
  2. 排行榜应用,取TOP N操作
  3. 精准设定过期时间
  4. 利用INCR,DECR命令构建计数器系统
  5. Uniq操作,获取某段时间所有数据排重值
  6. 实时系统,反垃圾系统
  7. Pub/Sub构建实时消息系统
  8. 构建队列系统
  9. 缓存(性能优于Memcached),数据结构多样化

当数据库访问过大的时候,缓存出现了。数据访问方式发生变化:
以前:
这里写图片描述
现在:
这里写图片描述

二、如何保证内存中的数据不丢失?

持久化,将内存的数据同步到磁盘

三、集群

主从复制
分片:把数据分散在不同的主机里面保存

有集群,机器宕机怎么办?
1、容灾
2、Sentinel:

  1. 是个独立进程
  2. 监控redis主从主机(类似ping
  3. 如果一个主机出现情况,则通知客户端:
  4. 1)如果master宕机,选举一个slave作为新的master,转移槽
  5. 2)如果slave宕机,通知master

3、Cluster通过操作哈希槽实现

总结

基本了解,希望可以帮到您。

发表评论

表情:
评论列表 (有 0 条评论,699人围观)

还没有评论,来说两句吧...

相关阅读

    相关 dubbo学习(入门了解

    概述 Apache Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发

    相关 ClickHouse入门了解

    一、ClickHouse简介 ClickHouse是一个`面向列`的数据库管理系统 (DBMS),多用于查询的`在线分析处理 (OLAP)`,是一款 PB 级的交互式分析

    相关 dubbo入门了解

    1.dubbo是什么 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没