数据库的数据存储

数据库的读写分离,mysql(完整数据)

主库是写库,从库是读库 因为正常的产品,查询的情况大于存储的情况,写入服务器可以少加几台,读取的可以多加几台,合理的适配资源,二八定则

如何实现session共享 ?

因为分布式开发才存在session共享,一个服务部署在多个服务器上,session在服务器内部内存里,一个项目部署在三台机器上,每台机器上都有个session都能交互?不能,应为seesion存在单台服务器的内存里,用户访问,登陆的时候访问了A机器,在A机器完成登陆后,把令牌存在了session中,只是把令牌存在了一台机器上,第二次又来请求,随机分配在了第二台机器上,第二台机器没有这个session,那就没有登陆,这样情况不合适,在分布式中没法用session,但是我就想用,可以用redis,

怎么用redis实现分布式下session的共享呢

redis,你访问A机器,要用session,session存数据,把数据存在redis里面,记下sessionid,数据还是 存在redis里面,你在请求第二台机器,第二台机器创建session,然后就不创建session去redis里面取,redis就一份,搭建集群数据也就一份,所以就导致,把session的数据存到redis里面,所以session现在用的就少了,我既然把数据存入到redis里面了,我还用啥session,所以现在开发里主要直接就拿redis用,所以session现在用的就少了,这也就面仅仅作为面试题

目前工作中 现在主要用令牌,登陆后产生令牌,把令牌标记存在redis中,同时把令牌返回给前端,前端把令牌记下来,无论把你分配到哪台机器上无所谓,你分配到那台机器上都带令牌,你带令牌我去redis里面校验获取,能校验成功说明令牌有效,校验不成功说明令牌无效,你已经注销了,所以你无论访问那台机器都无所谓,这是目前解决的方案

redis(缓存,重复访问的数据,共享数据,有效期数据 )

单机抗不住,可以主从复制 其实很多公司的redis都是单机的,小公司一台redis就够用了,外包公司没啥数据 外包公司不负责研发和维护项目

单机不够加主从复制,主从复制就是在配置文件中,masterselver开启主从复制

也可以加哨兵,哨兵就是监控,保证主机的存活,

怎么保证主库存活呢?搭建主从复制时,是一主配三从,一个主库配置三个从库,有可能主库崩了,怎么办,如果没有哨兵,崩了就是崩了,主库一般是写库,从库一般是读库,为啥从库多,主库少呢,日常的请求是查询多,写入少,比如今天这件商品浏览了很多次,就是没有下单,那今天都是查询,下单的概率很低,这就要求我们的查询数据库要多一点,查询库一般叫读库,一般只负责读取,那就用从库代替,一般主库少从库多原因在这里,那么一主配三从,那如果主库崩了,那就没法写东西了,那没法写东西就有问题了,那怎么办呢,redis官方给了一种解决方案叫哨兵,哨兵,比如,找个人一直监视着,不断的巡视,哨兵就是监控,监控数据库是否正常运行,心跳链接 它间隔5s给主库发一次消息,主库回复消息,如果主库没有回复消息,说明主库有可能挂了,然后他在发一次消息,确认下,还是没有消息,那主库就是挂了,然后它给所以的从库发消息,你们联系主库,给我个响应,他们也联系不上,就说明主库崩了,崩了怎么办?

哨兵开始干活,他不断的监控,监控出了问题,他会自动切换,怎么切换,兄弟们咱们的队长没了,不能没有队长,从三个从库里面用投票选举发择出一个作为主库,这样的话,选出一个作为主库,从库就变成两个,另外两个从库就连上了他,master的地址就变成这台电脑,哨兵帮他变地址,无论主库和从库都链接有哨兵只要他监控到,他选择的主库,两外就是从库,原来那个主库就自动变成了从库,如果崩了,就变不成从库了,因为他就连不了,自动该配置文件,哨兵改的,如果三个主库都崩了,那运维就。。。,只有主库有问题运维一点会发现,运维是搭建环境和监控的,监控每台服务器运行的状态,不可能出问题才报警,只有到预警值就报警了,运维就该处理了,大屏,邮件,短接通知,找原因,准备备用机,主机是不放在一起的,避免他们一起出问题,保障系统有效稳定的运行,这就是哨兵的作用。一台肯定有极限,那就搭建集群,多主多从10配90 这种集群成本是不可想象的,一台redis服务器至少4核8G内存,一年成本将近一万多,搭建100多台redis要100多万,redis要100多万,这个项目至少1000多万,数据很大,mysql也要搭建集群,硬件就不少钱了,应用服务器都是钱,一般项目用不到,这种项目不可能做外包,只会做自研,后期还要维护,小项目,或者其他项目
redis可以搭建集群 一般都是运维做的,量太大了

ElasticSearch快速搜索,海量存储 可以用ElasticSearch服务器

如果单机不够,也可以搭建集群成本更高,服务器要求高

数据三大件, 减轻mysql压力,三者数据相互交互,高并发项目这几个技术就够用了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值