Chinaunix首页 | 论坛 | 博客
  • 博客访问: 287727
  • 博文数量: 40
  • 博客积分: 1807
  • 博客等级: 上尉
  • 技术积分: 350
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-03 15:42
文章分类

全部博文(40)

文章存档

2011年(18)

2010年(20)

2009年(2)

我的朋友

分类: LINUX

2010-09-27 14:40:17

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接口上执行
地址:


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
[falcon@php.cn  ~/src]$ tar xvzf redis-2.0.0-rc4.tar.gz
[falcon@php.cn  ~/src]$ cd  redis-2.0.0-rc4
[falcon@php.cn  ~/src/redis-2.0.0-rc4]$ make
[falcon@php.cn  ~/src/redis-2.0.0-rc4]$ mkdir ~/redis-2.0.0
[falcon@php.cn  ~/src/redis-2.0.0-rc4]$cp redis-server  ~/redis-2.0.0
[falcon@php.cn  ~/src/redis-2.0.0-rc4]$cp redis-benchmark  ~/redis-2.0.0
[falcon@php.cn  ~/src/redis-2.0.0-rc4]$cp redis-cli  ~/redis-2.0.0
[falcon@php.cn  ~/src/redis-2.0.0-rc4]$cp redis.conf  ~/redis-2.0.0
[falcon@php.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
# masterauth

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

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

########## 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 134217728
vm-max-threads 4
############# ADVANCED CONFIG ###############
glueoutputbuf yes
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
#是否重置Hash表
activerehashing yes




启动Redis
[falcon@php.cn  ~/redis-2.0.0]$ ./redis-server redis.conf
检测Redis是否启动:
[falcon@php.cn  ~/redis-2.0.0]$ netstat -an -t
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:10022               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      
……..
[falcon@php.cn  ~/redis-2.0.0]$ ps -ef|grep redis-server
falcon    7663     1  0 02:29 ?        00:00:00 ./redis-server redis.conf
阅读(2115) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~