途牛原创|无线中心运营研发Redis酷实践

Redis-简介

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal(Redis作者目前就职)赞助。

数据类型

  • String(字符串)
  • List(列表)
  • Set(集合)
  • Sort Set(有序集合)
  • Hash(哈希)

Redis-应用场景

Redis作者antirez描述了Redis比较适合的一些应用场景,NoSQLFan简单列举在这里,供大家一览:

  • 取最新N个数据的操作
  • 排行榜应用,取TOP N操作
  • 需要精准设定过期时间的应用
  • 计数器应用
  • Uniq操作,获取某段时间所有数据排重值
  • 实时系统,反垃圾系统
  • Pub/Sub构建实时消息系统
  • 构建队列系统
  • 缓存

运营研发-场景

无线运营研发部,作为无线运营侧的兵工厂,成功打造了CMS,位置管理,权限中心,RBZ等运营支撑工具。

武器一览

  • CMS:无线运营播种机
  • RBZ:EAV模型(动态表单+属性中心+标签系统)
  • 权限中心:RBAC3模型
  • 位置管理:一切皆位置

^^^^^^^ 回到主题,下面就为大家详细介绍下,我们如何玩耍Redis。

场景包括CMS页面缓存、API限速器、页面性能分析、API状态统计、CMS智能提醒-异常线路。尤其页面性能分析、API状态统计、CMS智能提醒等应用简直X爆了,将页面和接口性能看板化、智能化,技术应用一目了然、一览无余。

场景字段的一些说明

  • 应用场景:属于哪一类应用范畴
  • 数据类型:使用的数据类型
  • 代码说明:PHP,扩展phpredis

CMS页面缓存

基于Redis的字符串数据类型,用来存储CMS静态页面数据,提高CMS相关页面访问速度,缓冲mysql的压力。

  • 数据类型:String
  • 应用场景:缓存
  • 代码:

$staticHtml = Yii::app()->redis->get($cmsCacheKey);

if (! $staticHtml || $this->clearcache) {
   $staticHtml = CmsTools::getStaticHtml($pageId, $cityCode);
   Yii::app()->redis->setex($cmsCacheKey, 3600, $staticHtml);
}

API限速器

基于Redis的字符串数据类型,用来控制API访问频率,一段时间内某一个IP针对某一个请求的访问控制官方用例

  • 数据类型:String
  • 应用场景:计数器
  • 代码:

public static function rateLimit($apiKey = null)
{
   
    //Redis键值
    $apiRunCountKey = Yii::app()->request->use
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值