ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:25.91KB ,
资源ID:17370257      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17370257.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(技术调研评估报告RedisWord文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

技术调研评估报告RedisWord文档格式.docx

1、2012-09-19实际完成时间2012-09-212.调研过程 准备工作操作系统CentOS 6.0 64位。Linux常用命令熟悉cd,chrgp,chown,find,configure,mkdir,rm,tar,wget,yum,make&make install。技术选型:RedisRedis的特点性能高:Redis能支持超过100K+每秒的读写频率。丰富的数据类型:Redis支持二进制的Strings,Lists,Hashes,Sets及Ordered Sets数据类型操作。原子:Redis的所有操作都是原子性的,同时Redis还支持几个操作全并后的原子性操作。事务:Redis支持

2、简单的事务,但是并不保证ACID性质,只是一些基本的命令打包执行。提供的Watch功能能够对一个key进行watch,然后执行Transcation,在这个过程中如果,如果watachd的值发生了变化,那么Transcation会发现并拒绝执行。丰富的特性:Redis还支持publish/subcrible,通知,key过期等特性。单线程:Redis使用的是单线程的IO复用模型,无法有效的利用多核心服务器。Redis与Memcached比较1Redis是单线程,Memcached是多线程。单线程不能发挥多核的优势,但Memcached的多线程也会带来其他一些问题,比如cache coheren

3、cy和锁的问题,从而影响性能。2Memcached使用预分配的内存池,Redis使用现场申请内存的方式来存储数据。3Memcached不支持持久化和复制功能。Redis支持数据保持在硬盘中,重启的时候可以再次加载使用。Redis的持久化参见:4Memcached提供了cas命令,可以保证多个并发操作同一份数据的一致性问题。Redis没有提供类似的命令。5Memcached只支持简单的key-value存储,Redis支持更复杂的数据类型,可以把Redis理解为一个数据结构服务器。6Redis除了提供存储之外相比Memcached提供了更多的特性。比如聚合计算,pubsub,scripting等

4、。7Redis支持数据备份,即master-slave模式的数据备份。8在Redis中并不是所有的数据都存在内存中,这是和Memcached相比一个最大的去区别。Redis只会缓存所有key信息。如果Redis发现内存的使用量超过一定的阈值,将触发swap操作,将内存中的数据swap到硬盘中去。9Redis支持批量的插入和读取。Redis的适用场景1Redis使用最佳方式是全部数据in-memory,对于少量的数据,高速读写访问。同时提供数据落地功能。2Redis更多的使用场景是作为Memcached的替代者来使用的。3当需要除key/value之外更多数据类型支持的时候,使用Redis更合适

5、。4当存储数据不能被剔除的时候,使用Redis更适合。Redis在项目中的使用场景1.消息系统中采用Redis存储选取后的系统消息。Redis支持的批量存储和读取比较适合接口在读取要求。2.灰度控制中将权限信息存储在Redis中。Redis及相关环境搭建Redis安装配置1.下载Redis最新版本2.2.14(读者自己选择版本)rootlocalhost # cd /usr/local/srcrootlocalhost # wget 2.编译安装Redisrootlocalhost # tar xvzf xzvf redis-2.2.14.tar.gz /解压rootlocalhost # c

6、d redis-2.2.14rootlocalhost # makemake命令执行完成后,会在src目录下生成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:更新日志检查

7、。redis-check-dump:用于本地数据检查。rootlocalhost # make PREFIX=/usr/local install /安装3.配置Redisrootlocalhost # mkdir /etc/redisrootlocalhost # cp redis.conf /etc/redis/redis.confrootlocalhost # mkdir /var/lib/redis4.redis-conf配置参数#是否作为守护进程运行daemonize yes#如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pidpidfile redis.

8、pid#绑定主机IP,默认值为127.0.0.1#bind 127.0.0.1#Redis默认监听端口port 6379#客户端闲置多少秒后,断开连接,默认为300(秒)timeout 300#日志记录等级,有4个可选值,debug,verbose(默认值),notice,warningloglevel verbose#指定日志输出的文件名,默认值为stdout,也可设为/dev/null屏蔽日志logfile stdout#可用数据库数,默认值为16,默认数据库为0databases 16#保存数据到disk的策略#当有一条Keys数据被改变是,900秒刷新到disk一次save 900 1

9、#当有10条Keys数据被改变时,300秒刷新到disk一次save 300 10#当有1w条keys数据被改变时,60秒刷新到disk一次save 60 10000#当dump .rdb数据库的时候是否压缩数据对象rdbcompression yes#本地数据库文件名,默认值为dump.rdbdbfilename dump.rdb#本地数据库存放路径,默认值为 ./dir /var/lib/redis/# Replication #Redis的复制配置# slaveof 当本机为从服务时,设置主服务的IP及端口# masterauth 当本机为从服务时,设置主服务的连接密码#连接密码# re

10、quirepass foobared#最大客户端连接数,默认不限制# maxclients 128#最大内存使用设置,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。# maxmemory #是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为noappendonly no#更新日志文件名,默认值为appendonly.aof#appendfilename#更新日志条件,共有

11、3个可选值。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次(默认值)。# appendfsync alwaysappendfsync everysec# appendfsync no# VIRTUAL MEMORY #是否开启VM功能,默认值为novm-enabled no# vm-enabled yes#虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享vm-swap-file /tmp/redis.swap#将所有大于vm-max-memory的数据存入虚拟内存

12、,无论vm-max-memory设置多小,所有索引数据都是内存存储的 (Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0。vm-max-memory 0vm-page-size 32vm-pages 134217728vm-max-threads 4# ADVANCED CONFIG #glueoutputbuf yeshash-max-zipmap-entries 64hash-max-zipmap-value 512#是否重置Hash表activerehashing yes运行多个Redis实例一台Red

13、is服务器,分成多个节点,每个节点分配一个端口(6380,6381),默认端口是6379。每个节点对应一个Redis配置文件,如: redis6380.conf、redis6381.conf启动多个redis实例:注意:如果配置文件和启动的Redis版本不匹配会解析配置文件失败无法启动。LAMP和phpReidsAdmin搭建1LAMP环境搭建。首先配置防火墙,开启80端口、3306端口:vi /etc/sysconfig/iptables-A INPUT -m state -state NEW -m tcp -p tcp -dport 80 -j ACCEPT(允许80端口通过防火墙)-A

14、INPUT -m state -state NEW -m tcp -p tcp -dport 3306 -j ACCEPT(允许3306端口通过防火墙)重启防火墙使配置生效/etc/init.d/iptables restartservice iptables restart1)安装Apache。采用yum安装。rootlocalhost # yum install httpd httpd-develrootlocalhost # chkconfig httpd -level 2345 on /设置apache为开机启动项。rootlocalhost # service httpd start

15、 /启动apache默认目录为/var/www/html配置文件路径为/etc/httpd/conf/httpd.conf访问apache所在务器地址看是否安装成功。如果访问不了的话看防火墙是否关闭:service iptables stop。如果安装过程出现什么问题,参见下面的遇到问题及解决方法。2)安装Mysql。rootlocalhost # yum install mysql-server mysqlrootlocalhost # mysql_secure_installation 出现要求密码的提示直接回车,出现要求设置密码的提示的时候,设置密码。rootlocalhost # cp

16、 /etc/init.d/mysqld /etc/init.d/mysqld /将mysql设为服务。rootlocalhost # service httpd start /启动mysqlrootlocalhost # mysql u root p 123 /使用用户名和密码登陆mysql。3)安装PHP。yum安装。rootlocalhost # yum install php php-devel php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php

17、-mcrypt php-bcmath php-mhash libmcrypt /安装php和相应的php扩展。rootlocalhost # service httpd restart /重启apacherootlocalhost # vi /var/www/html/info.php 输入:?php phpinfo();在浏览器中访问info.php。出现php信息,说明php和apache安装成功。2安装phpRedisAdmin。phpRedisAdmin是一个基于PHP的Redis图形界面客户端。1)安装PHP的Redis扩展。源码安装。master rootlocalhost # t

18、ar zxvf owlient-phpredis-2.1.1-1-g90ecd17.tar.gzrootlocalhost # cd owlient-phpredis-90ecd17rootlocalhost # /usr/bin/phpize /phpize用来扩展phprootlocalhost # ./configure -with-php-config=/etc /yum安装php默认配置文件在/etc(如果遇到bash./configurepermissiondenied错误,在当前目录运行chmod +x ./configure,如果提示找不到php配置文件,直接在/etc目录下手

19、动创建php.ini)rootlocalhost # make & make installrootlocalhost # vi /etc/php.ini /修改php配置文件添加一行:extension=redis.sorootlocalhost # service httpd restart /重启Apache在浏览器打开info.php看PHP是否已经支持Redis。为了进一步验证可以写个Redis php测试页面:rootlocalhost # vi /var/www/html/redis.php$redis=new Redis();$redis-connect(192.168.32.

20、13,6379);set(test,Hello Redis Word!);echo $redis-get(访问浏览器看到“Hello Redis Word!”说明Redis扩展安装成功。2)安装phpRedisAdmin。rootlocalhost # cd /var/www/htmlrootlocalhost # git clone rootlocalhost # cd phpRedisAdminrootlocalhost # git submodule initrootlocalhost # git submodule update访问:192.168.32.13/phpRedisAdmi

21、n验证phpRedisAdmin是否安装成功。3遇到的问题及解决方法1)在安装apache的时候先是通过yum安装然后又通过源码安装,后来又要卸掉apache重装。源码安装的我是直接删除安装目录 /usr/local/apache2。然后通过yum remove httpd来删除yum安装的apache,提示删除成功,但是我再用yum install httpd想验证下我有没有真的删除掉的时候,系统又总是提示我已经安装过apache。yum安装的一个不好的地方就是我不知道到底安装量哪些文件,安装的文件在哪个目录,所以一个个删除文件不现实。最后网上查到可以用rpm -qa|grep httpd查

22、看安装了哪些apache依赖的rpm包:httpd-tools-2.2.15-15.el6.centos.1.x86_64httpd-2.2.15-15.el6.centos.1.x86_64然后用rpm -e来删除这些依赖项,但这时候又出现问题了,系统出错提示如下:error reading information on service httpd: No such file or directoryerror: %preun(httpd-2.2.15-15.el6.centos.1.x86_64) scriptlet failed, exit status 1这时候可以在rpm后加个参数n

23、oscripts,通过rpm -e -noscripts删除掉了上面的两个包,最后成功卸载掉了apache。2)在用yum安装mysql的时候,进行到mysql_secure_installation时候出现了下面的错误提示:Cant connect to local MySQL server through socket /var/lib/mysql/mysql.sock (2) 。这个错误的提示是说,不能通过/tmp/mysql.sock连接到服务器。Mysql.sock是创建与mysqld服务器相关的MySQL通信端点所使用的套接字。而PHP标准配置正是通过/tmp/mysql.sock

24、来连接数据库,可能是一些mysql的安装方法将mysql.sock放到了别的地方,可以通过修改/etc/mysql/f文件(或者/etc/my.conf文件,和mysql安装的方法有关,该配置文件的路径可能会有所不同)来修改它,打开文件可以看到如下的语句:/tmp/mysql.sock,在这个路径下也的确存在mysql.sock但是运行mysql_secure_installation时候查找的路径却是/var/lib/mysql/mysql.sock,很疑惑,最后通过做一个链接解决了这个问题:ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock。3)

25、在启动Apache的时候出现下面的错误提示:Starting httpd: httpd: Could not reliably determine the servers fully qualified domain name, using 192.168.33.225 for ServerName(98)Address already in use: make_sock: could not bind to address :80 could not bind to address 0.0.0.0:no listening sockets available, shutting down首先

26、重启系统,如果重启系统还不行的话,用netstat -lnp|grep 80命令查看有哪些进程占用了80端口,可以用ps pid查看某个进程的详细信息,用kill -9 pid杀掉进程。4)安装phpRedisAdmin所以要装php的Redis扩展phpredis,但是通过yum安装php后就是找不到phpize,phpzie是用来安装php扩展的,找不到它自然无法安装phpRedis。最后发现原来phpize是属于php-devel的。通过yum install php-devel发现phpize出现在/usr/bin目录下了。Redis性能测试见Redis性能测试报告Redis优化分区:redis-sharding分区,aof,一些故障排除和解决,参见调整系统内核参数虚拟内存 ,调整系统内核参数3.调研结果评估暂无。4.后续工作 1.Redis性能测试。2.Redis性能优化。建议1.在项目中使用的Redis中尽量保证数据都是in-memory的。2.预估数据量提前做好分区。评价

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1