




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高性能NoSQL数据库Redis盛大在线:徐江涛博客:http:/NoSQL 大行其道APP高并发请求海量化数据Disk内存图灵奖得主Jim Gray :“内存是新的硬盘,硬盘是新的磁带”memcachedRedis分享大纲Redis是什么Redis的特性Redis的API及适用场景Redis的使用经验,运维参数Redis是什么sponsored by:What is Redis is.an “advanced key-value store”b yS A LVATO R E S A N F I L I P P O( a n t i r e z )Redis vs MemcachedMemca
2、ched 操作实例键(keys)值(values)page:index.html.user:101:sessionxDrSdEwd4dSlZkEkj+login_count“100001”user:100:last_login_time“102736485756”所有的操作都是基于字符串、或者是2进制的数据格式、操作起来大部分是GET、SET这2个命令操作,易于使用Redis vs Memcached 和Memcached 一样、使用简单、性能高效(1G 1M)异步持久化存储支持多种数据类型;Strings(字符)、 Lists(链表)、Sets(集合)、ZSets(有序集合)、Hashes(
3、哈希)更多、更方便API接口 管理数据;More commandsand More.Is RedisRedis vs MemcachedRedis 数据类型实例键(keys)值(values)page:index.html.users_logged_in_today 1, 2, 3, 4, 5 latest_post_ids201, 204, 209,.users_and_scoresjoe 1.3483bert 93.4fred 283.22chris 23774.17StringSetsListZSetsRedis的API及适用场景Strings 字符./redis-cli SET mys
4、tring “ hello world ”C clientkeyvalue./redis-cli GET mystring hello worldreturnGETSETMGETSETNXSETEXMSETMSETNXRedis的API及适用场景Strings 字符INCRINCRBYDECRDECRBYAPPENDSUBSTRRedis的API及适用场景Expiration当把Redis当作缓存服务使用时,你可以设置数据的过期时间,不管是数据类型(string,list,zsets,sets,hash)是什么,此系列命令都有效EXPIRE paitoubing 1234TTL paitoub
5、ing = 1234秒秒Redis的API及适用场景Deleting KeysDEL paitoubingEXISTS paitoubing = 0 (false)Redis的API及适用场景ListsabcdefLPUSHRPUSHLPOPRPOPLPUSH paitoubing aRedis的API及适用场景ListsabcdefLLEN = 6xLREM 1 bLRANGE 2 3LINDEX 5Redis的API及适用场景队列服务QueuesabcdefRPUSHLPOPRPUSH paitoubing abcRPUSH paitoubing defLPOP paitoubing =
6、“abc”LPOP paitoubing = “def”LPOP paitoubing = (nil)Redis的API及适用场景集合Setsuid:1:followersbruce tom zhangsan lisi wangermazi xiaoyueyue fengjieuid:2:followersxiaoyueyue fengjie liyuchun furongjiejieSREM uid:1:followers wangermazixSMOVE uid:1:followers uid:2:followers lisiSADD uid:2:followers tomRedis的AP
7、I及适用场景集合Setsuid:1:followersbruce tom zhangsan lisi wangermazi xiaoyueyue fengjieuid:2:followersxiaoyueyue fengjie liyuchun furongjiejieSCARD uid:1:followers = 7SISMEMBER uid:1:followers xinxin = 0 (meaning false)SRANDMEMBER uid:1:followers = “xiaoyueyue”SMEMBERS uid:2:followers= xiaoyueyue fengjie l
8、iyuchun furongjiejieRedis的API及适用场景集合Sets(交集、并集、差集)uid:1:followersbruce tom zhangsan lisi wangermazi xiaoyueyue fengjieuid:2:followersxiaoyueyue fengjie liyuchun furongjiejiexiaoyueyue fengjieSINTER uid:1:followers uid:2:followers = xiaoyueyue fengjieSINTERSTORESUNION SUNIONSTORESDIFF SDIFFSTORERedis
9、的API及适用场景有序集合ZSetsLike Sets 每个元素,增加了rank,或是scoreno time!Redis的API及适用场景Hashes(哈希)产品:Product 1created_at : 1290149988product_id : 1name : 盛大点券available : 100HSET product:1 created_at 1290149988HSET product:1 name “盛大点券”HSET product:1 available 100HGET product:1 name = 盛大点券HLEN product:1 = 3HKEYS produ
10、ct:1 = created_at, name,availableHGETALL product:1 = created_at = 102374657 name= 盛大点券 available= 100HVALS HEXISTS HINCRBY HMGET HMSETRedis的API及适用场景Redis Social Network (社会化网络)UGC好友:双向关系粉丝:单向关系textphotomore.blog、Message、photo、Redis的API及适用场景新增用户usernameuseridINCR next_user_idReturn s uidSET user:uid:
11、name usernameSET username:username idInt 整形变量值新增日记contentauthorI NCR next_post_idReturn s pidSET post:pid:content contentSET post:pid:author uidLPUSH user:uid:posts pidLPUSH posts:global pidRedis Social Network (社会化网络)Unique IDsSORTZCARDMONITORSLAVEOFRENAMESELECTSAVESUBSCRIBEPUBLISHRedis的API及适用场景Eno
12、ugh commands! (版本更新快)Redis的安装下载:http:/ zxvf redis-version.tar.gzcd redis-versionmake由于没有make install,所以得把源代码目录里的关键文件手动复制到适当的位置:cp redis.conf /etc/cp redis-benchmark redis-cli redis-server /usr/bin/修改/etc/redis.conf daemonize yes 启动redis服务# /usr/bin/redis-server /etc/redis.confRedis的安装Redis.conf (配置文
13、件)daemonize yes = 以守护进程的方式运行maxmemory = Redis在启动时会把所有数据加载到内存中 ,设置使用内存限制 , 新的vm机制,key存放内存,value会存放在swap区,不建议 可通过consistent hashing把数据分布到多个服务器上 save 900 1save 300 10save 60 10000 = 900秒内有1个改变, 300秒内有10个改变, 60秒内有10000个改变, redis就会内存中的key保存到数据库文件中去 dbfilename dump.rdb 保存数据的路径slaveof 6379 = 在启
14、动时,REDIS会自动从MASTER上把数据 先同步过来,而无需我们手动进行 MASTER上每有一次落地保存,会自动向SLAVE进行同步。当然这里的问题是,如果MASTER不保存,SLAVE也就无法得到这些数据,这和REDIS本身的内存写磁盘逻辑是一样 Redis的安装requirepass = 连接密码(注释)rdbcompression = 存储至本地数据库时是否压缩数据,默认为yesmasterauth = 当本机为从服务时, 设置主服务的连接密码(注释)maxclients = 最大客户端连接数,默认不限制(注释)appendonly = 是否在每次更新操作后进行日志记录,如果不开启,
15、可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为noappendfsync = 更新日志条件,共有3个可选值。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次(默认值)。vm-enabled 是否使用虚拟内存NO PRODUCT !Redis的主从-集群clientclientclientmastermastermasterslaveslaveslaveCONSISTENT HASH / 定容 readwrite同步数据https:/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 礼堂使用协议书
- 实习自愿放弃协议书
- 家具安装保修协议书
- 物业被盗协议书
- 家庭车位买卖协议书
- 球赛赞助协议书
- 小三怀孕赔偿协议书
- 理疗服务协议书
- 宠物机构领养协议书
- 法院派遣协议书
- 部编小学语文三下识字表无拼音
- 《家用食品粉碎机设计》11000字
- 【课件】4.1转基因产品的安全性课件2021-2022学年高二下学期生物人教版选择性必修3
- 产四万吨甲乙酮项目初步设计说明
- 课程思政的认识、实践与思考课件
- 工程结算催告函
- 第一种、第二种工作票
- 办公室业务培训提纲课件
- 深入解读-3种方法来配制生理盐水鼻腔喷雾剂
- DB37-T 4328-2021 建筑消防设施维护保养技术规程
- 电磁场与电磁波期末考试复习试题4套(部分含答案)
评论
0/150
提交评论