Redis 是一个高性能的key-value数据库, 使用内存作为主存储,数据访问速度非常快,当然它也提供了两种机制支持数据持久化存储.比较遗憾的是,Redis项目不直接支持Windows,Windows版项目是由微软开放技术团队建立和维护一个实验性项目(支持32,64位),所以并不适用生产环境,但可在Windows环境下用于开发测试。
有2个windows版本可以下载,https://github.com/dmajkic/redis/ 或https://github.com/MSOpenTech/redis。
我下的是前者。
安装:
,下载源码包,解压ZIP包后进入msvs\bin\release文件夹有三个文件分别对应32,64位,windows服务三个版本,在这里我们选择64位为例,解压redisbin64.zip 到D:\redis2.4 , 这里主要用到redis-server.exe和redis-cli.exe, redis-server用于运行Redis服务器,redis-cli是命令行客户端,通过它连接Redis服务器,并使用Redis命令进行各种操作.
解压后大概有这些文件:
redis-server.exe:服务程序
redis-check-dump.exe:本地数据库检查
redis-check-aof.exe:更新日志检查
redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于
Apache 的ab 或jmeter工具).
将这些文件拷贝到安装你要安装redis的目录。
2.服务启动配置
复制源码包根目录下redis.conf到D:\redis2.4,打开CMD命令提示符,输入以下命令启动redis服务
启动:
redis-server redis.conf
这样redis服务就启动成功了
启动cmd窗口要一直开着,关闭后则Redis服务关闭。
这时服务开启着,另外开一个窗口进行,设置客户端:
使用CMD命令提示符,打开redis-cli连接redis服务器 ,也可以使用telnet客户端
# redis-cli -h 服务器 –p 端口 –a 密码
redis-cli.exe -h 127.0.0.1 -p 6379
连接成功后,就可对redis数据增删改查了,如字符串操作
以下是一些服务器管理常用命令:
info #查看服务器信息
select <dbsize> #选择数据库索引 select 1
flushall #清空全部数据
flushdb #清空当前索引的数据库
slaveof <服务器> <端口> #设置为从服务器
slaveof no one #设置为主服务器
shutdown #关闭服务
更多命令参考:http://redis.readthedocs.org/en/latest/
配置:
更改redis的配置需要修改redis.conf文件,以下是它一些主要的配置注释
#是否作为守护进程运行 daemonize no #Redis 默认监听端口 port 6379 #客户端闲置多少秒后,断开连接 timeout 300 #日志显示级别 loglevel verbose #指定日志输出的文件名,也可指定到标准输出端口 logfile redis.log #设置数据库的数量,默认最大是16,默认连接的数据库是0,可以通过select N 来连接不同的数据库 databases 32 #Dump持久化策略 #当有一条Keys 数据被改变是,900 秒刷新到disk 一次 #save 900 1 #当有10 条Keys 数据被改变时,300 秒刷新到disk 一次 save 300 100 #当有1w 条keys 数据被改变时,60 秒刷新到disk 一次 save 6000 10000 #当dump .rdb 数据库的时候是否压缩数据对象 rdbcompression yes #dump 持久化数据保存的文件名 dbfilename dump.rdb ########### Replication ##################### #Redis的主从配置,配置slaveof则实例作为从服务器 #slaveof 192.168.0.105 6379 #主服务器连接密码 # masterauth <master-password> ############## 安全性 ########### #设置连接密码 #requirepass <password> ############### LIMITS ############## #最大客户端连接数 # maxclients 128 #最大内存使用率 # maxmemory <bytes> ########## APPEND ONLY MODE ######### #是否开启日志功能 appendonly no # AOF持久化策略 #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
主从复制
在从服务器配置文件中配置slaveof ,填写服务器IP及端口即可,如果主服务器设置了连接密码,在masterauth后指定密码就行了
持久化
redis提供了两种持久化文案,Dump持久化和AOF日志文件持久化
Dump持久化是把内存中的数据完整写入到数据文件,由配置策略触发写入,如果在数据更改后又未达到触发条件而发生故障会造成部分数据丢失.
AOF持久化是日志存储的,是增量的形式,记录每一个数据操作动作,数据恢复时就根据这些日志来生成.
如何添加值到list:
(integer) 1
redis 127.0.0.1:6379> lpush mylist val2
(integer) 2
redis 127.0.0.1:6379> lpush mylist val3
(integer) 3
redis 127.0.0.1:6379> lpush mylist val4
(integer) 4
redis 127.0.0.1:6379> lrange mylist 0 -1
1> val1
2> val2
3> val3
4> val4
redis 127.0.0.1:6379> rpop mylist
"val1"
redis 127.0.0.1:6379> lpush ls1 3 (integer) 1 redis 127.0.0.1:6379> lpush ls1 1 (integer) 2 redis 127.0.0.1:6379> lpush ls1 val1 (integer) 3 redis 127.0.0.1:6379> lpush ls1 0 -1 (integer) 5 redis 127.0.0.1:6379> lrange ls1 0 -1 1) "-1" 2) "0" 3) "val1" 4) "1" 5) "3"
redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的 ab 工具).
- ./redis-benchmark -n 100000 –c 50
- ====== SET ======
- 100007 requests completed in 0.88 seconds (译者注:100004 查询完成于 1.14 秒 )
- 50 parallel clients (译者注:50个并发客户端)
- 3 bytes payload (译者注:3字节有效载荷)
- keep alive: 1 (译者注:保持1个连接)
- 58.50% <= 0 milliseconds(译者注:毫秒)
- 99.17% <= 1 milliseconds
- 99.58% <= 2 milliseconds
- 99.85% <= 3 milliseconds
- 99.90% <= 6 milliseconds
- 100.00% <= 9 milliseconds
- 114293.71 requests per second(译者注:每秒 114293.71 次查询)
Windows下测试并发客户端极限为60
参考:http://www.cnblogs.com/mejozn/archive/2013/05/05/3061949.html