日期:2014-05-16  浏览次数:20472 次

Redis安装配置【转】

http://bbs.linuxtone.org/thread-7129-1-1.html

?

Redis介绍

?? ??? Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服 务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered?? sets(被排序的集 合),所有的数据类型都具有push/pop、add/remove、执行服务端的并集、交集、两个sets集中的差别等等操作,这些操作都是具有原子性 的,Redis还支持各种不同的排序能力
?? ??? Redis 2.0更是增加了很多新特性,如:提升了性能、增加了新的数据类型、更少的利用内存(AOF和VM)
?? ??? Redis支持绝大部分主流的开发语言,如:C、Java、C#、PHP、Perl、Python、Lua、Erlang、Ruby等等

Redis性能:
?? ??? 根据Redis官方的测试结果:在50个并发的情况下请求10w次,写的速度是110000次/s,读的速度是81000次/s
?? ??? 测试环境:
?? ??? 1. ?? ??? 50个并发,请求100000次
?? ??? 2. ?? ??? 读和写大小为256bytes的字符串
?? ??? 3. ?? ??? Linux2.6 Xeon X3320 2.5GHz的服务器上
?? ??? 4. ?? ??? 通过本机的loopback interface接口上执行
地址:http://code.google.com/p/redis/wiki/Benchmarks


Redis的功能:
?? 1、Redis的Sharding:Redis支持客户端的Sharding功能,通过一致性hash算法实现,当前Redis不支持故障冗余,在集群中不能在线增加或删除Redis
?? 2、Redis的master/slave复制:
?? ?? ?? ?? ?? ??? 1. ?? ??? 一个master支持多个slave
?? ?? ?? ?? ?? ??? 2. ?? ??? Slave可以接受其他slave的连接来替代他连接master
?? ?? ?? ?? ?? ??? 3. ?? ??? 复制在master是非阻塞的,而在slave是阻塞的
?? ?? ?? ?? ?? ??? 4. ?? ??? 复制被利用来提供可扩展性,在slave端只提供查询功能及数据的冗余
?? 3、Redis的Virtual Memory功能:vm是Redis2.0新增的一个非常稳定和可靠的功能,
vm的引入是为了提高Redis的性能,也就是把很少使用的value保存到disk,而key保存在内存中。实际上就是如果你有10w的keys在内存 中,而只有仅仅10%左右的key经常使用,那么Redis可以通过开启VM尝试将不经常使用的Value转换到disk上保存
?? 4、Redis的附加档案(AOF)功能:Redis通过配置的策略将数据集保存到aof中,当Redis挂掉后能够通过aof恢复到挂掉前的状态


Redis的安装及配置:
?? ??? 下载Redis:wget http://redis.googlecode.com/files/redis-2.0.0-rc4.tar.gz

[falcon@www.fwphp.cn?? ~/src]$ tar xvzf redis-2.0.0-rc4.tar.gz
[falcon@www.fwphp.cn?? ~/src]$ cd?? redis-2.0.0-rc4
[falcon@www.fwphp.cn?? ~/src/redis-2.0.0-rc4]$ make
[falcon@www.fwphp.cn?? ~/src/redis-2.0.0-rc4]$ mkdir ~/redis-2.0.0
[falcon@www.fwphp.cn?? ~/src/redis-2.0.0-rc4]$cp redis-server?? ~/redis-2.0.0
[falcon@www.fwphp.cn?? ~/src/redis-2.0.0-rc4]$cp redis-benchmark?? ~/redis-2.0.0
[falcon@www.fwphp.cn?? ~/src/redis-2.0.0-rc4]$cp redis-cli?? ~/redis-2.0.0
[falcon@www.fwphp.cn?? ~/src/redis-2.0.0-rc4]$cp redis.conf?? ~/redis-2.0.0
[falcon@www.fwphp.cn?? ~/src/redis-2.0.0-rc4]$ cd ~/redis-2.0.0/
复制代码




配置redis.conf配置文件:

#是否作为守护进程运行
daemonize yes
#配置pid的存放路径及文件名,默认为当前路径下
pidfile redis.pid
#Redis默认监听端口
port 6379
#客户端闲置多少秒后,断开连接
timeout 300
#日志显示级别
loglevel verbose
#指定日志输出的文件名,也可指定到标准输出端口
logfile stdout
#设置数据库的数量,默认连接的数据库是0,可以通过select N来连接不同的数据库
databases 16
#保存数据到disk的策略
#当有一条Keys数据被改变是,900秒刷新到disk一次
save 900 1
#当有10条Keys数据被改变时,300秒刷新到disk一次
save 300 10
#当有1w条keys数据被改变时,60秒刷新到disk一次
save 60 10000
#当dump?? .rdb数据库的时候是否压缩数据对象
rdbcompression yes
#dump数据库的数据保存的文件名
dbfilename dump.rdb
#Redis的工作目录
dir /home/falcon/redis-2.0.0/
###########?? Replication #####################
#Redis的复制配置
# slaveof <masterip> <masterport>
# masterauth <master-password>

############## SECURITY ###########
# requirepass foobared

############### LIMITS ##############
#最大客户端连接数
# maxclients 128
#最大内存使用率
# maxmemory <bytes>

########## APPEND ONLY MODE #########
#是否开启日志功能
appendonly no
# 刷新日志到disk的规则
# appendfsync always
appendfsync everysec
# appendfsync no
################ VIRTUAL MEMORY ###########
#是否开启VM功能
vm-enabled no
# vm-enabled yes
vm-swap-file logs/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134