第1章:高并发必备技术分布式缓存Redis

高并发必备两大核心技术队列和缓存

什么是队列(MQ消息中间件 ):全程MessageQueue,主要是用于程序和程序直接通讯。异步+解耦。

使用场景:解耦,异步,削峰。

什么是缓冲:程序经常要调用的对象存在内存中,方便其使用时可以快速调用,不必去数据库或者其他持久化设备中查询。主要就是提高性能DNS缓存,前端缓存,代理服务器缓存Nignx,应用程序缓存,数据库缓存。

本地缓存和分布式缓存

分布式缓存:与应用分类的缓存组件或服务,与本地应用隔离一个独立的应用,多个应用可直接的共享缓存,常见的分布式缓存有Redis,Memcached等。

本地缓存:和业务程序一起的缓存,例如mybatis的一级或者二级缓存,本地缓存自然是最快的,但是不能再多个节点共享。

常见的本地缓存:

  1. mybatis一级缓存,二级缓存
  2. 框架本身的缓存
  3. redis本地单机服务
  4. ehchche
  5. guava cache
  6. Caffeine

我们去选择本地缓存和分布式缓存:主要是去结合业务数据去选择,高并发项目里面一般都是有本地缓存和分布式缓存共同存在的。

热点key的解决方案之一:避免带宽或者传输影响,本地缓存热点key数据,对于每次读请求,将首先检查key是否存在本地缓存中,如果存在则直接返回,如果不存在再去访问分布式缓存的机器。缓存中的某些key对应的value存储在集群中一台机器,使得所以流量涌向同一机器,成为系统的瓶颈,无法通过增加机器容量来解决。

NoSql和Redis快速介绍

NOSQL,是不同于传统的关系数据库的数据库管理系统的统称,其两者最重要的区别是NOSQL不使用SQL作为查询语言。Nosql数据存储可以不需要固定的表格模式。以键值对存储,列存储,文档存储,图形数据库。

常见的Nosql数据库:redis,memcached,mongodb,hbase

Redis官方地址:https://redis.io/,中文地址:https://redis.cn/

Redis是一个开源的使用ANSI C语言编写,遵循BSD协议,支持网络,可基于内存,分布式,可选持性的键值对(Key-Value)存储数据库,并提供多种语言的API。

高性能:Redis读的速度为110000次/s,写的速度81000次/s。

内存中的数据结构存储系统,它可以用作数据库,缓存和消息中间件。它支持多种类型的数据结构,如字符串(String),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)等。

Redis主要特性:aof/rdb,高性能的原因,key设计,热点key,淘汰算法

Redis可以实现的功能:排行榜,购物车,社交关系(粉丝,关注),Feed流,附加的商家,分布式锁等等

源码安装Redis

#安装gcc
yum install -y gcc-c++ autoconf automake

#centos7 默认的 gcc 默认是4.8.5,版本小于 5.3 无法编译,需要先安装gcc新版才能编译
gcc -v

#升级新版gcc,配置永久生效
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

scl enable devtoolset-9 bash  
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile 

#编译redis
cd redis
make

#安装到指定目录
mkdir -p /usr/local/redis

make PREFIX=/usr/local/redis install

容器版安装Redis

docker run -itd --name redis -p 6379:6379 --restart=always redis:7.0 --requirepass 123456

-i 以交互模式运行容器,通常与-t 同时使用。

-d 后台运行容器,并返回容器ID。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值