首页 > 代码库 > 向着架构技术进军---实践redis(一)
向着架构技术进军---实践redis(一)
一个网站如何面对高容量大并发的压力,是架构师们要研究的事情。虽然目前我工作的站还没有达到这个水平,但是一些未雨绸缪的工作应该要开始了,给我们定的计划是在半年到一年时间,完成高容量大并发系统的架构设计。说干就干,先从redis开始吧。
首先得准备一份高记录数据样本,奈何手上没有现成的,只好从短信系统取,短信系统用的是MSSQL,先得导入到MYSQL中,我用了一个工具是mss2sql,下载地址是:http://www.intelligent-converters.com/demos/mss2sqld.exe,然后将一个100万记录的表导入MYSQL居然花了4个小时。
接下来安装redis,先在windows环境下装了个2.4版,准备将该表从MYSQL中导入redis,发现网上有篇文章介绍导出方法:http://www.oschina.net/translate/mysql-to-redis-in-one-step 《一步完成 MySQL 向 Redis 迁移》,发现在windows下始终提示
G:\redis-2.4.5-win32-win64\64bit>redis-cli --pipe
(error) ERR unknown command ‘--pipe‘
一开始以为是windows原因,随即准备了台centos的虚机,捣鼓一些nginx+php+mysq的环境不在话下,最后安装了redis发现还是提示上述错误,最终想起来我在windows和linux下用的都是redis2.4版,现在都用2.6和2.8版本了,那就升级吧。发现yum库中最高版也只有2.4,那只有手动安装了:http://www.redis.io/download
$ wget http://download.redis.io/releases/redis-2.8.14.tar.gz$ tar xzf redis-2.8.14.tar.gz$ cd redis-2.8.14$ make
提示GCC忘记装了,继续捣鼓,参考:http://xueliang1yi.blog.163.com/blog/static/1145570162012102114635764/
1、报错一 没用gcc
安装过程
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make
注意gcc依赖了很多东西,有些包可能系统已经 装了,有些没有,防止出意外,最好都走一遍
2、报错二,没有tcl8.5, 安装tcl8.5,过程如下
下载地址:http://downloads.sourceforge.net/tcl/tcl8.5.10-src.tar.gz
安装过程
tar -zxvf tcl8.5.tar.gz
./configure
make
make install
3、安装redis
make
make test //检查一下,看看有没有问题
make install
如果make继续报错,信息如下:error: jemalloc/jemalloc.h: No such file or directory
执行 make MALLOC=libc 就行
注意的是,为了防止出意外,make失败后在make的话,清理一下,执行make clean
这样redis2.8就装好了,也可以运行 mysql -u root -pxxx 库名称 --skip-column-names --raw < events_to_redis.sql | redis-cli --pipe
其他一些参考资料:
Redis应用场景:http://blog.csdn.net/hguisu/article/details/8836819
phpredis中文手册——《redis中文手册》 php版:http://www.cnblogs.com/zcy_soft/archive/2012/09/21/2697006.html
浅谈Redis数据库的键值设计:http://blog.nosqlfan.com/html/3033.html
nosql应用场景——用redis打造山寨twitter:http://blog.csdn.net/exsuns/article/details/6358414 http://www.cnblogs.com/jackluo/archive/2013/06/27/3158974.html
向着架构技术进军---实践redis(一)