Redis主从复制
Redis的主从复制的配置很简洁,而且支持多级Master/Slave,比如B是A的slave,C是B的Slave。下面以单台机器为例说明
Master/Slave配置
一个Redis服务实例需要一个配置文件,因此启动slave,只需要复制master的配置文件,然后做少量修改即可。假设master监听1010端口,slave监听2020端口,假设复制好的slave的配置文件名为slave.conf。
修改slave.conf以下两项的值
port 2020
dbfilename slave.rdb
在slave.conf加入
slaveof 127.0.0.1 1010 (这个表示,他是127.0.0.1 1010的slave服务)
启动master和slave,然后写入数据到master,读取slave,可以看到数据被复制到slave了。
用途:数据备份,读写分离等等
Redis 性能(
摘自官方测试描述
)
在 50 个并发的情况下请求 10w 次,写的速度是 110000
次/s,读的速度是 81000 次/s
测试环境:
1. 50 个并发,请求 100000 次
2. 读和写大小为 256bytes 的字符串
3. Linux2.6 Xeon X3320 2.5GHz 的服务器上
4. 通过本机的 loopback interface 接口上执行
Redis介绍
redis是一个key/value内存数据库,数据可以异步复制到磁盘,性能非常高,都知道memcached的性能很好,redis的读写能力不逊于memcached,甚至还要强。除此外,redis具有memcached的很多没有的强大特性。memcached数据无法持久化,全部是纯内存模式,不支持主从复制,数据的操作接口很有限。相同的是,两者的负载均衡策略都一样,客户端基于一致性哈希选择服务器。redis的支持的数据类型和数据操作很丰富,他的值可以是 string(字符串)、list(列表)、sets(集合)或者是 ordered sets(被排序的集合),所有的数据类型都具有 push/pop、add/remove、执行服务端的并集、交集、两个 sets 集中的差别等等操作,这些操作都是具有原子性的,Redis 还支持各种不同的排序能力。
Redis 安装及配置
下载 Redis:wget http://redis.googlecode.com/files/redis-2.0.0-rc4.tar.gz
james@james-desktop: ~/src]$ tar xvzf redis-2.0.0-rc4.tar.gz
james@james-desktop: ~/src]$ cd redis-2.0.0-rc4
james@james-desktop: ~/src/redis-2.0.0-rc4]$ make
james@james-desktop: ~/src/redis-2.0.0-rc4]$ mkdir ~/redis-2.0.0
james@james-desktop: ~/src/redis-2.0.0-rc4]$cp redis-server ~/redis-2.0.0
james@james-desktop: ~/src/redis-2.0.0-rc4]$cp redis-benchmark ~/redis-2.0.0
james@james-desktop: ~/src/redis-2.0.0-rc4]$cp redis-cli ~/redis-2.0.0
james@james-desktop: ~/src/redis-2.0.0-rc4]$cp redis.conf ~/redis-2.0.0
james@james-desktop: ~/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
james@james-desktop: ~/redis-2.0.0$ ./redis-server redis.conf
数据操作API可以参考官方网站,这里不介绍。
上一篇: 好久没有到这里来了