Redis入门笔记(一)-简介及安装
1.Redis简介![]()
Redis(http://redis.io/)是一个目前很火的nosql产品,Redis是REmote DIctionary Server的简称,官方的说法就一行简单的介绍:Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. 意思是说Redis是一个可以存放string、hash,list,set和有序set等数据类型的开源key-value数据服务器,我想了半天也想不出来别的介绍比这句话更靠谱,所以就直接搬来用了
?
?
2.Redis性能
官方的说法如下:
The test was done with 50 simultaneous clients performing 100000 requests.The value SET and GET is a 256 bytes string.The Linux box is running Linux 2.6, it’s Xeon X3320 2.5Ghz.Text executed using the loopback interface (127.0.0.1).Results: about 110000 SETs per second, about 81000 GETs per second.
我在内存为3G的64位linux服务器上运行benchmark得到的结果明显低于这个数字,大约每秒SET 5W-6W次,GET 大约4W的样子,虽说比官方说的少了很多,不过对于大部分应用是足够了
?
3.Redis定位及功能
要使用好一个开源产品,首先必须熟悉它的定位,优先我就不说了,效率够高,反映够快,代码写的很优秀、bug少,单台服务器基本不出故障,缺点倒是要仔细的列一下,免的很多人脑子发热走很多弯路
1、Redis本身代码非常少,因此功能不强,仅仅是Set,Get及一些常规的列表增加一类的操作,指望什么索引、多字段查找,排序等功能请出门左转找mongoDB去。
2、怎么把object转成byte也是要自己搞定的。
3、在持久化方面,Redis支持snapshot和appendoffile方式,不过这种dump的法子对性能都有很大的压力,之后有时间再讨论,总之一句话,不dump没事,一dump就有N多事,推荐少用持久化,最好压根不持久化,或者就算要持久化的时候也在从库上作持久化
4、Redis自身没有shard功能,需要自己实现(有些客户端有这个功能,但是比较乱)
5、Redis本身的VM功能是渣一般的存在,linux的VM同上,为了自身安全着想,还是不要开启为好,无论在任何时间都应该确保物理内存足够存放所有的数据,别指望虚拟内存有任何帮助
6、Redis是单线程的,要想利用多核CPU性能,一台服务器上跑的redis实例数最好等于或者大于CPU数目
?
4、安装
安装是绝对简单的,应该说没什么可以设置的
$ wget http://redis.googlecode.com/files/redis-2.2.7.tar.gz$ tar xzf redis-2.2.7.tar.gz$ cd redis-2.2.7$ make
?然后src下的redis-server redis-cli redis-benchmark redis-stat这几个程序就可以跑了,但是咱们是文明人,最好还是要建几个目录管理下
mkdir -p binmkdir -p confmkdir -p logsmkdir -p datacd srccp redis-server redis-cli redis-benchmark redis-stat ../bincd ..cp redis.conf conf
?接下来要配置了,详细的配置暂时不解释,先打开刚才cp的redis.conf文件,改几个选项
daemonize yespidfile /home/app/redis/run/redis.pidport 6379logfile /home/app/redis/logs/stdout.logdbfilename /home/app/redis/data/dump.rdbdir ./
?确保上面的文件目录都存在的情况下,就可以运行了
src/redis-server conf/redis.conf
?
下一篇讲配置吧