1:首先下载redis。
从下面地址下:https://github.com/MSOpenTech/redis/releases
2:创建redis.conf文件:
这是一个配置文件,指定了redis的监听端口,timeout等。如下面有:port 6379。
配置:
更改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持久化是日志存储的,是增量的形式,记录每一个数据操作动作,数据恢复时就根据这些日志来生成。
3:在cmd下面执行以下命令,指定它使用我们的redis.conf,同时也是启动,把redis运行起来,这里指定用redis.conf的配置运行服务器
D:\redis-2.0.2>redis-server.exe redis.conf
4:开一新DOS窗口cmd.执行以下命令,这是Redis的客户端程序:
redis-cli.exe -h 172.18.5.1 -p 6379
172.18.5.1是我本机IP地址,端口6379就是上面配置文件中指定的监听端口
执行完成后,应该能看到redis启动了,这时在第一个cmd窗口可以看到连接信息。
执行一条保存key value操作
set mystock 300156
再查询一下
get mystock
=================================
可以完全参考以下地址的资料:
http://hi.baidu.com/zchare/blog/item/bd6034f325d1c65f352acca1.html(very good,安全可以成功)
http://cardyn.iteye.com/blog/794194
http://zhaohaolin.iteye.com/blog/1017561
=================================
把下面内容COPY到一新建文件中,取名redis.conf,再保存到redis-2.0.2目录下:
1 # Redis configuration file example 2 3 # By default Redis does not run as a daemon. Use ‘yes‘ if you need it. 4 # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. 5 daemonize no 6 7 # When run as a daemon, Redis write a pid file in /var/run/redis.pid by default. 8 # You can specify a custom pid file location here. 9 pidfile /var/run/redis.pid 10 11 # Accept connections on the specified port, default is 6379 12 port 6379 13 14 # If you want you can bind a single interface, if the bind option is not 15 # specified all the interfaces will listen for connections. 16 # 17 # bind 127.0.0.1 18 19 # Close the connection after a client is idle for N seconds (0 to disable) 20 timeout 300 21 22 # Set server verbosity to ‘debug‘ 23 # it can be one of: 24 # debug (a lot of information, useful for development/testing) 25 # notice (moderately verbose, what you want in production probably) 26 # warning (only very important / critical messages are logged) 27 loglevel debug 28 29 # Specify the log file name. Also ‘stdout‘ can be used to force 30 # the demon to log on the standard output. Note that if you use standard 31 # output for logging but daemonize, logs will be sent to /dev/null 32 logfile stdout 33 34 # Set the number of databases. The default database is DB 0, you can select 35 # a different one on a per-connection basis using SELECT <dbid> where 36 # dbid is a number between 0 and ‘databases‘-1 37 databases 16 38 39 ################################ SNAPSHOTTING ################################# 40 # 41 # Save the DB on disk: 42 # 43 # save <seconds> <changes> 44 # 45 # Will save the DB if both the given number of seconds and the given 46 # number of write operations against the DB occurred. 47 # 48 # In the example below the behaviour will be to save: 49 # after 900 sec (15 min) if at least 1 key changed 50 # after 300 sec (5 min) if at least 10 keys changed 51 # after 60 sec if at least 10000 keys changed 52 save 900 1 53 save 300 10 54 save 60 10000 55 56 # Compress string objects using LZF when dump .rdb databases? 57 # For default that‘s set to ‘yes‘ as it‘s almost always a win. 58 # If you want to save some CPU in the saving child set it to ‘no‘ but 59 # the dataset will likely be bigger if you have compressible values or keys. 60 rdbcompression yes 61 62 # The filename where to dump the DB 63 dbfilename dump.rdb 64 65 # For default save/load DB in/from the working directory 66 # Note that you must specify a directory not a file name. 67 dir ./ 68 69 ################################# REPLICATION ################################# 70 71 # Master-Slave replication. Use slaveof to make a Redis instance a copy of 72 # another Redis server. Note that the configuration is local to the slave 73 # so for example it is possible to configure the slave to save the DB with a 74 # different interval, or to listen to another port, and so on. 75 # 76 # slaveof <masterip> <masterport> 77 78 # If the master is password protected (using the "requirepass" configuration 79 # directive below) it is possible to tell the slave to authenticate before 80 # starting the replication synchronization process, otherwise the master will 81 # refuse the slave request. 82 # 83 # masterauth <master-password> 84 85 ################################## SECURITY ################################### 86 87 # Require clients to issue AUTH <PASSWORD> before processing any other 88 # commands. This might be useful in environments in which you do not trust 89 # others with access to the host running redis-server. 90 # 91 # This should stay commented out for backward compatibility and because most 92 # people do not need auth (e.g. they run their own servers). 93 # 94 # requirepass foobared 95 96 ################################### LIMITS #################################### 97 98 # Set the max number of connected clients at the same time. By default there 99 # is no limit, and it‘s up to the number of file descriptors the Redis process 100 # is able to open. The special value ‘0‘ means no limts. 101 # Once the limit is reached Redis will close all the new connections sending 102 # an error ‘max number of clients reached‘. 103 # 104 # maxclients 128 105 106 # Don‘t use more memory than the specified amount of bytes. 107 # When the memory limit is reached Redis will try to remove keys with an 108 # EXPIRE set. It will try to start freeing keys that are going to expire 109 # in little time and preserve keys with a longer time to live. 110 # Redis will also try to remove objects from free lists if possible. 111 # 112 # If all this fails, Redis will start to reply with errors to commands 113 # that will use more memory, like SET, LPUSH, and so on, and will continue 114 # to reply to most read-only commands like GET. 115 # 116 # WARNING: maxmemory can be a good idea mainly if you want to use Redis as a 117 # ‘state‘ server or cache, not as a real DB. When Redis is used as a real 118 # database the memory usage will grow over the weeks, it will be obvious if 119 # it is going to use too much memory in the long run, and you‘ll have the time 120 # to upgrade. With maxmemory after the limit is reached you‘ll start to get 121 # errors for write operations, and this may even lead to DB inconsistency. 122 # 123 # maxmemory <bytes> 124 125 ############################## APPEND ONLY MODE ############################### 126 127 # By default Redis asynchronously dumps the dataset on disk. If you can live 128 # with the idea that the latest records will be lost if something like a crash 129 # happens this is the preferred way to run Redis. If instead you care a lot 130 # about your data and don‘t want to that a single record can get lost you should 131 # enable the append only mode: when this mode is enabled Redis will append 132 # every write operation received in the file appendonly.log. This file will 133 # be read on startup in order to rebuild the full dataset in memory. 134 # 135 # Note that you can have both the async dumps and the append only file if you 136 # like (you have to comment the "save" statements above to disable the dumps). 137 # Still if append only mode is enabled Redis will load the data from the 138 # log file at startup ignoring the dump.rdb file. 139 # 140 # The name of the append only file is "appendonly.log" 141 # 142 # IMPORTANT: Check the BGREWRITEAOF to check how to rewrite the append 143 # log file in background when it gets too big. 144 145 appendonly no 146 147 # The fsync() call tells the Operating System to actually write data on disk 148 # instead to wait for more data in the output buffer. Some OS will really flush 149 # data on disk, some other OS will just try to do it ASAP. 150 # 151 # Redis supports three different modes: 152 # 153 # no: don‘t fsync, just let the OS flush the data when it wants. Faster. 154 # always: fsync after every write to the append only log . Slow, Safest. 155 # everysec: fsync only if one second passed since the last fsync. Compromise. 156 # 157 # The default is "always" that‘s the safer of the options. It‘s up to you to 158 # understand if you can relax this to "everysec" that will fsync every second 159 # or to "no" that will let the operating system flush the output buffer when 160 # it want, for better performances (but if you can live with the idea of 161 # some data loss consider the default persistence mode that‘s snapshotting). 162 163 appendfsync always 164 # appendfsync everysec 165 # appendfsync no 166 167 ############################### ADVANCED CONFIG ############################### 168 169 # Glue small output buffers together in order to send small replies in a 170 # single TCP packet. Uses a bit more CPU but most of the times it is a win 171 # in terms of number of queries per second. Use ‘yes‘ if unsure. 172 glueoutputbuf yes 173 174 # Use object sharing. Can save a lot of memory if you have many common 175 # string in your dataset, but performs lookups against the shared objects 176 # pool so it uses more CPU and can be a bit slower. Usually it‘s a good 177 # idea. 178 # 179 # When object sharing is enabled (shareobjects yes) you can use 180 # shareobjectspoolsize to control the size of the pool used in order to try 181 # object sharing. A bigger pool size will lead to better sharing capabilities. 182 # In general you want this value to be at least the double of the number of 183 # very common strings you have in your dataset. 184 # 185 # WARNING: object sharing is experimental, don‘t enable this feature 186 # in production before of Redis 1.0-stable. Still please try this feature in 187 # your development environment so that we can test it better. 188 # shareobjects no 189 # shareobjectspoolsize 1024