Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1061752
  • 博文数量: 321
  • 博客积分: 7872
  • 博客等级: 少将
  • 技术积分: 2120
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 09:06
文章分类

全部博文(321)

文章存档

2017年(1)

2016年(1)

2015年(12)

2014年(17)

2013年(78)

2012年(15)

2011年(17)

2010年(67)

2009年(102)

2008年(11)

分类: LINUX

2013-01-02 17:41:51

redis是一个key-value存储系统。 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集 合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis 支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改 操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

下载安装:

wget  [redis.io]
tar -zxf redis-2.0.5.tar.gz
cd redis-2.0.5
make 
#make命令执行完成后,会在当前目录下生成本个可执行文件,如下:
#redis-server:Redis服务器的daemon启动程序
#redis-cli:Redis命令行操作工具。也可以用telnet根据其纯文本协议来操作
#redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
#redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况 
make install
配置的一些基本说明:
daemonize       #是否以后台daemon方式运行
pidfile         #pid文件位置
port            #监听的端口号 
timeout         #请求超时时间 默认为300(秒)
loglevel        #log信息级别  有4个可选值,debug,verbose(默认值),notice,warning
logfile         #log文件位置
databases       #开启数据库的数量
save * *        #保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression  #是否使用压缩
dbfilename      #数据快照文件名(只是文件名,不包括目录)
dir             #数据快照的保存目录(这个是目录)
appendonly      #是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync     #appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
vm-enabled      #是否使用虚拟内存,默认值为no
vm-swap-file    #虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享
vm-max-memory   #将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0
vm-page-size    #设置虚拟内存的页大小,如果你的value值比较大,比如说你要在value中放置博客、新闻之类的所有文章内容,就设大一点,如果要放置的都是很小的内容,那就设小一点
vm-pages        #设置交换文件的总的page数量,需要注意的是,page table信息会放在物理内存中,每8个page就会占据RAM中的1个byte。总的虚拟内存大小 = vm-page-size * vm-pages
vm-max-threads  #设置VM IO同时使用的线程数量。因为在进行内存交换时,对数据有编码和解码的过程,所以尽管IO设备在硬件上本上不能支持很多的并发读写,但是还是如果你所保存的vlaue值比较大,将该值设大一些,还是能够提升性能的
glueoutputbuf   #把小的输出缓存放在一起,以便能够在一个TCP packet中为客户端发送多个响应,具体原理和真实效果我不是很清楚。所以根据注释,你不是很确定的时候就设置成yes
hash-max-zipmap-entries #在redis 2.0中引入了hash数据结构。当hash中包含超过指定元素个数并且最大的元素没有超过临界时,hash将以一种特殊的编码方式(大大减少内存使用)来存储,这里可以设置这两个临界值
hash-max-zipmap-value   #hash中一个元素的最大值
activerehashing         #开启之后,redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用。当使用场景中,有非常严格的实时性需要,不能够接受Redis时不时的对请求有2毫秒的延迟的话,把这项配置为no。如果没有这么严格的实时性要求,可以设置为yes,以便能够尽可能快的释放内存
slaveof  #当本机为从服务时,设置主服务的IP及端口(注释)
masterauth     #当本机为从服务时,设置主服务的连接密码(注释)
requirepass foobared            #连接密码(注释)
maxclients                      #最大客户端连接数,默认不限制(注释)
maxmemory                       #设置最大内存,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。(注释)
  配置文件: 
daemonize yes
pidfile /var/run/redis.pid
port 6379
timeout 315360000
loglevel notice
logfile /data/redis_logs/redis.log
databases 16
save 3600 10000
save 86400 1
rdbcompression yes
dbfilename dump.rdb
dir /data/redis/
appendonly no
appendfsync everysec
vm-enabled no
vm-swap-file /tmp/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
glueoutputbuf yes
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
activerehashing yes
启动和关闭: 
#启动
redis-server /usr/local/redis/redis.conf 
#关闭所有
redis-cli shutdown 
#关闭某个端口上的redis   
redis-cli -p 6397 shutdown
     
转自:http://xukaizijian.blog.163.com/blog/static/17043311920115274531435/
阅读(590) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~