- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Redis与应用研讨教程
PAGE \* MERGEFORMAT 18
Redis分析与应用研讨
作者 :WzgFromABC
简介
前世今生
2008年意大利一家创业公司Merzia推出一款基于MySQL的网站实时统计系统LLOOGG,然而没过多久创始人Salvatore Sanfilippo变开始对MySQL性能感到失望,于是他量身定做了一个内存数据库Redis,2009年完成完成开发,并于同一年开源发布,代码托管在github上。2012年Hacker News发布的一份数据库使用情况调查表明,12%的公司在使用redis,国外有GitHub,StackOverFlow,Flicker,Instagram等,国内有新浪微博,知乎等。VMware2010年开始赞助Redis,创始人Salvatore Sanfilippo以及另外一名主要代码贡献者Pieter Noordhuis目前在VMware,全职开发Redis。
功能简介
? redis是一个key-value的存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted?set?--有序集合)和hash(哈希类型)。这些数据类型都?支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排?序。
与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文?件,并且在此基础上实现了master-slave(主从)同步,数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
Redis为了减少大量小数据CMD操作的网络通讯时间开销 RTT (Round Trip Time),支持pipeline和script技术。所谓的pipeline就是支持在一次通讯中,发送多个命令给服务器批量执行,带来的代价是服务器端需要更多的内存来缓存查询结果。Redis内嵌了LUA解析器,可以执行lua?脚本,脚本可以通过eval等命令直接执行,也可以使用script load等方式上传到服务器端的script cache中重复使用。
最新版本3.0中新增了redis-cluster集群功能,从服务器端考虑了多实例间的调度机制。
安装配置
安装Redis之前需要了解Redis的版本规则以选择最适合自己的版本,Redis约定次版本号(小数点后第一个数字)为的偶数版本为稳定版,例如版,奇数版为非稳定版,例如2.5,2.7,推荐使用稳定版本进行开发和生产环境使用。下面安装Redis 3.0.5,安装环境为KMC的开发环境Suse Linux 11 SP3
Redis安装
1)解压缩
tar xzf redis-3.0.5.tar.gz
2)编译
make
make install
cp redis.conf /etc/
可执行结果:
make install命令执行完成后,会在/usr/local/bin目录下生成5个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-AOF 、redis-check-dump,它们的作用如下:
redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具。也可以用telnet根据其纯文本协议来操作
redis-benchmark:Redis性能测试工具,测试Redis在当前系统下的读写性能
redis-check-AOF:数据修复
redis-check-dump:检查导出工具
Redis配置
1)修改Linux系统配置文件,执行命令
a) echo vm.overcommit_memory=1 /etc/sysctl.conf
b) sysctl vm.overcommit_memory=1 或执行echo vm.overcommit_memory=1 /proc/sys/vm/overcommit_memory
使用数字含义:
0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2,表示内核允许分配超过所有物理内存和交换空间总和的内存
备注:如果dump文件过大,接近了内存容量,Redis宕机重启加载dump文件时会因为申请内存失败,只能恢复小部分数据,从而引发数据丢失,如果有后台数据库还好可以从数
文档评论(0)