网站大量收购闲置独家精品文档,联系QQ:2885784924

键值数据库Redis-厦门大学数据库室.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用场景 * Redis解决问题: 这里我们可以用redis记录全量的用户判定信息,如string key:uid int:type,做一次反向的cache,当用户在redis快速获取自己等级等信息后,再去Mc+Mysql层去获取全量信息。如图: 安装运行 * redis下载: 安装运行 * Redis安装: 1、解压:tar xzvf redis-stable.tar.gz 2、进入目录:cd redis-stable 3、编译:make 4、安装:make install 安装运行 * Redis服务器启动: 安装运行 * Redis客户端启动: 谢谢 * 厦门大学数据库实验室 Redis数据库介绍 报告人:罗道文 导师:林子雨 时间:2015年07月10日 过渡页 * 目录 Redis简介 1 Redis数据模型 2 Redis应用场景 3 Redis安装运行 4 Redis简介 * 1 Remote Dictionary Server(Redis),即远程字典服务器 2 Redis是一个开源的,ANSI C语言编写,支持网络,基 于内存亦可持久化的日志型的,Key-Value数据库 3 作者:Salvatore Sanfilippo,来自意大利西西里岛, 任职于Pivotal 4 从2010年3月15日起,Redis的开发工作由VMware主持。 从2013年5月开始,Redis的开发由Pivotal赞助。 数据类型 * Redis支持5中数据类型: 字符串对象(string) 1 2 列表对象(list) 3 哈希对象(hash) 集合对象(set) 有序集合对象(zset) 4 5 数据类型 * sds 数据类型 * sds动态字符串 * Sds动态字符串的定义: Sds动态字符串 * 图解sds: int len int free char buf[6] 0 0 0 6 0 0 0 0 ‘h’ ‘e’ ‘l’ ‘l’ ‘o’ ‘0’ struct sdshdr sds s sds.c文件: Sds动态字符串 * 字符串操作: 跳跃链表 * Skiplist跳跃链表的定义: 跳跃链表 * 跳跃链表 * header Tail Level 3 Length 7 -1 -1 -1 7 7 14 21 21 21 32 37 37 37 71 71 85 跳跃链表 * header Tail Level 3 Length 8 -1 -1 -1 7 7 14 21 21 21 32 37 37 37 71 71 85 35 35 35 跳跃链表 * 字典 * 1 2 3 4 Dict字典的定义: 字典 * 图解Dict: 字典 * 字典操作: 对象 * redisObject的定义: 对象 * redisObject图解: * Redis执行流程: Redis事件:1、定时事件 2、超时事件 3、套接字读事件 4、套接字写事件 Redis执行流程: * 当客户端发起一个连接时: * 客户端服务器模型: Redis执行流程: * Redis执行流程: * 当回复发给客户端后: Redis执行流程: 应用场景 * 1、排行榜相关 一个很普遍的需求是各种数据库的数据并非存储在内存中,因此在按得分排序以及实时更新这些几乎每秒钟都需要更新的功能上数据库的性能不够理想。 典型的比如那些在线游戏的排行榜,比如一个Facebook的游戏,根据得分你通常想要: ? ? ? ? ?- 列出前100名高分选手 ? ? ? ? ?- 列出某用户当前的全球排名 应用场景 * Redis解决之道: 模式是这样的,每次获得新得分时,我们用这样的代码: ZADD?leaderboard ?score ?username? 得到前100名高分用户很简单:ZREVRANGE leaderboard 0 99。 用户的全球排名也相似,只需要:ZRANK leaderboard username。 应用场景 * 2、特定时间内的特定项目 ? 另一项对于其他数据库很难,但Redis做起来却轻而易举的事就是统计在某段特点时间里有多少特定用户访问了某个特定资源。比如我想要知道某些特定的注册用户或IP地址,他们到底有多少访问了某篇文章。 应用场景 * Redis解决之道: 每次我获得一次新的页面浏览时我只需要这样做: ? ? ? ?SADD?page:day1:page_id?user_id? ? ? ? 当然你可能想用unix时间替换day1,比如time()-(time()%3600*24)等等。 ? ? ? 想知道特定用户

文档评论(0)

ailuojue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档