您的位置:首页 > 数据库 > Redis

linux 下的redis安装

2012-04-26 13:14 489 查看
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 134217728

vm-max-threads 4

############# ADVANCED CONFIG ###############

glueoutputbuf yes

hash-max-zipmap-entries 64

hash-max-zipmap-value 512

#是否重置Hash表

activerehashing yes

启动Redis

[falcon@www.fwphp.cn ~/redis-2.0.0]$ ./redis-server redis.conf

检测Redis是否启动:

[falcon@www.fwphp.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@www.fwphp.cn ~/redis-2.0.0]$ ps -ef|grep redis-server

falcon 7663 1 0 02:29 ? 00:00:00 ./redis-server redis.conf

本文来源于php爱好者 http://www.phplover.cn/ ,
原文地址:http://www.phplover.cn/post/404.html

其他:

1:查看进程,确认redis已经启动

[root@Architect redis-1.2.6]# ps -ef | grep redis

root 401 29222 0 18:06 pts/3 00:00:00 grep redis

root 29258 1 0 16:23 ? 00:00:00 redis-server /etc/redis.conf

如果这里启动redis服务失败,一般情况下是因为redis.conf文件有问题,建议检查或找个可用的配置文件进行覆盖,避免少走弯路,这里建议,修改redis.conf,设置redis进程为后台守护进程

# By default Redis does not run as a daemon. Use 'yes' if you need it.

# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.

daemonize yes

2:测试redis

[root@Architect redis-1.2.6]# redis-cli

redis> set name songbin

OK

redis> get name

"songbin"

3:关闭redis服务

redis-cli shutdown

redis服务关闭后,缓存数据会自动dump到硬盘上,硬盘地址为redis.conf中的配置项dbfilename dump.rdb所设定

4:强制备份数据到磁盘,使用如下命令

redis-cli save 或者 redis-cli -p 6380 save(指定端口)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: