分布式之redis的应用

redis的介绍

redis作为一种基于内存的no sql数据库,其拥有丰富的数据结构,以及较高的读写性能,并且目前基于redis的集群、主备方案也都有成熟方案。毋庸置疑,做为提高后台性能的利器和作为一些热点数据存储的数据库,目前在后台应用中特别广泛,堪称后台的利器。
redis拥有string、hash、set、list、sorted set 5种常用的数据结构。还拥有持久化、发布/订阅功能等。设计上给人有一种大道至简的感觉。

redis的原理

redis是基于C语言开发的开源软件。
存储模型为key-value形式。value可以为上面所说的5种类型。key-value在内存中用字典(hash实现的)来存。
过期机制:每个key都可以设置过期,redis过期机制使用定时扫描+使用时检查。定时扫描就是定时扫描一批key,检查其是否过期,对于过期的key会释放对应的内存。使用时检查就是每当对key进行操作时,都会检查key是否已经过期,过期会进行对应的操作。
string:string的实现就是对c语言的char*进行了封装,类似std::string的实现。
hash:hash内部实现是hash实现的字典。
set:同hash,也是用的字典,只是value为null
list:底层为双向列表
sorted set:底层是用的跳跃表+字典。跳跃表用于排序,按score进行排序。字典的key为member,value为score。用于可以快速获取member的scoce值。
网络模型:可以通过环境变量修改,linux下优先是基于epoll的多路复用的非阻塞模型。也是一个值得学习的网络事件框架。redis服务是单线程的,因此不用并发下的互斥问题。
持久化机制
主备模式
集群模式

redis的功能和作用

经常会做为热点数据的存储。对于一些比较实时且数据量可控的数据,也可以存在redis中。
redis的qps可以到达10w级别。作为数据的缓存,可以避免对磁盘的数据库造成压力,提升整个服务的响应容量和一定程度降低单个请求的延时。
redis因为是一个常驻服务,不用频繁进行升级,并且还有主备的可靠性。所以一些实时数据,例如登录会话、排行榜(利用sorted set)等也都可以存在redis。总的来说就是把业务服务的状态数据下沉到redis中,这样业务服务就能比较轻松的做到无状态,并且性能也不会降低很多。无状态对于微服务的运维管理会轻松很多。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值