Redis数据库的安装配置⽅法
redis 是⼀个⾼性能的key-value数据库。 redis的出现,很⼤程度补偿了memcached这类keyvalue存储的不⾜,在部分场合可以对关系数据库起到很好的补充作⽤。它提供了Python,Ruby,Erlang,PHP客户端,使⽤很⽅便。问题是这个项⽬还很新,可能还不⾜够稳定,⽽且没有在实际的⼀些⼤型系统应⽤的实例。此外,缺乏mc中批量get也是⽐较⼤的问题,始终批量获取跟多次获取的⽹络开销是不⼀样的。
性能测试结果:
SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下:
Linux 2.6, Xeon X3320 2.5Ghz.
stackoverflow ⽹站使⽤ Redis 做为缓存服务器。
安装过程:
Redis是⼀种⾼级key-value数据库。它跟memcached类似,不过数据可以持久化,⽽且⽀持的数据类型很丰富。有字符串,链表,集合和有序集合。⽀持在服务器端计算集合的并,交和补集(difference)等,还⽀持多种排序功能。所以Redis也可以被看成是⼀个数据结构服务器。
Redis的所有数据都是保存在内存中,然后不定期的通过异步⽅式保存到磁盘上(这称为“半持久化模式”);也可以把每⼀次数据变化都写⼊到⼀个append only file(aof)⾥⾯(这称为“全持久化模式”)。
⼀、下载最新版
⼆、解压缩
tar redis-2.0.
三、安装C/C++的编译组件(⾮必须)
apt-get install build-essential
四、编译
cd redis-2.0.0-rc4
make
make命令执⾏完成后,会在当前⽬录下⽣成本个可执⾏⽂件,分别是redis-server、redis-cli、redis-benchmark、redis-stat,它们的作⽤如下:
redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令⾏操作⼯具。当然,你也可以⽤telnet根据其纯⽂本协议来操作
redis-benchmark:Redis性能测试⼯具,测试Redis在你的系统及你的配置下的读写性能
redis-stat:Redis状态检测⼯具,可以检测Redis当前状态参数及延迟状况
在后⾯会有这⼏个命令的说明,当然是从⽹上抄的。。。
五、修改配置⽂件
/f
添加
vm.overcommit_memory=1
刷新配置使之⽣效
sysctl vm.overcommit_memory=1
补充介绍:
**如果内存情况⽐较紧张的话,需要设定内核参数:
echo 1 > /proc/sys/vm/overcommit_memory
内核参数说明如下:
overcommit_memory⽂件指定了内核针对内存分配的策略,其值可以是0、1、2。
0,表⽰内核将检查是否有⾜够的可⽤内存供应⽤进程使⽤;如果有⾜够的可⽤内存,内存申请允许;否则,内存申请失败,
并把错误返回给应⽤进程。
1,表⽰内核允许分配所有的物理内存,⽽不管当前的内存状态如何。
2,表⽰内核允许分配超过所有物理内存和交换空间总和的内存
**编辑f配置⽂件(/f),按需求做出适当调整,⽐如:
daemonize yes #转为守护进程,否则启动时会每隔5秒输出⼀⾏监控信息
save 60 1000 #减⼩改变次数,其实这个可以根据情况进⾏指定
maxmemory 256000000 #分配256M内存
在我们成功安装Redis后,我们直接执⾏redis-server即可运⾏Redis,此时它是按照默认配置来运⾏的(默认配置甚⾄不是后台运⾏)。我们希望Redis按我们的要求运⾏,则我们需要修改配置⽂件,Redis的配置⽂件就是我们上⾯第⼆个cp操作的f⽂件,⽬前它被我们拷贝到了/usr/local/redis/etc/⽬录下。修改它就可以配置我们的server了。如何修改?下⾯是f的主要配置参数的意义:
daemonize:是否以后台daemon⽅式运⾏
pidfile:pid⽂件位置
port:监听的端⼝号
timeout:请求超时时间
loglevel:log信息级别
logfile:log⽂件位置
databases:开启数据库的数量
save * *:保存快照的频率,第⼀个*表⽰多长时间,第三个*表⽰执⾏多少次写操作。在⼀定时间内执⾏⼀定数量的写操作时,⾃动保存快照。可设置多个条件。
rdbcompression:是否使⽤压缩
dbfilename:数据快照⽂件名(只是⽂件名,不包括⽬录)
dir:数据快照的保存⽬录(这个是⽬录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记⼀条log,这会提⾼数据抗风险能⼒,但影响效率。appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调⽤fsync、每秒启⽤⼀次fsync、不调⽤fsync等待系统⾃⼰同步)
下⾯是⼀个略做修改后的配置⽂件内容:
复制代码代码如下:
daemonize yes
pidfile /usr/local/redis/var/redis.pid
port 6379
timeout 300
loglevel debug
logfile /usr/local/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /usr/local/redis/var/
appendonly no
appendfsync always
glueoutputbuf yes
shareobjects no
shareobjectspoolsize 1024
将上⾯内容写为f并保存到/usr/local/redis/etc/⽬录下
然后在命令⾏执⾏:
/usr/local/redis/bin/redis-server /usr/local/redis/f
即可在后台启动redis服务,这时你通过
telnet 127.0.0.1 6379
即可连接到你的redis服务。
redis五种数据结构六、启动服务并验证
启动服务器
./redis-server
$redis-server /f
查看是否成功启动
$ ps -ef | grep redis
./redis-cli ping
PONG
七、启动命令⾏客户端赋值取值
redis-cli set mykey somevalue
./redis-cli get mykey
⼋、关闭服务
$ redis-cli shutdown
#关闭指定端⼝的redis-server
$redis-cli -p 6380 shutdown
九、客户端也可以使⽤telnet形式连接。[root@dbcache conf]# telnet 127.0.0.1 6379 Trying 127.0.
Connected to dbcache (127.0.0.1). Escape character is '^]'.
set foo 3
bar
+OK
get foo
$3
bar
^]
telnet> quit
Connection closed.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。