windows下安装redis

1、redis简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。

2、windows下安装redis

Redis对于Linux是官方支持的,安装和使用没有什么好说的,普通使用按照官方指导,5分钟以内就能搞定。详情请参考:

http://redis.io/download  

但有时候又想在windows下折腾下Redis,可以从redis下载页面看到如下提示(在页面中搜索 "windows"):

 大意就是 Redis官方是不支持windows的,只是 Microsoft Open Tech group 在 GitHub上开发了一个Win64的版本,项目地址是:

https://github.com/MSOpenTech/redis

打开以后,可以直接使用浏览器下载,或者Git克隆。

(注意: dist文件改变了下载地址: https://github.com/MSOpenTech/redis/releases )

在 Release 页面中,可以找到 msi 安装文件以及 .zip 文件(而且有3.0的beta版,请下拉查找)。

下载解压,没什么好说的,在解压后的目录下有以下这些文件:

  1. redis-benchmark.exe         #基准测试  
  2. redis-check-aof.exe         # aof  
  3. redis-check-dump.exe        # dump  
  4. redis-cli.exe               # 客户端  
  5. redis-server.exe            # 服务器  
  6. redis.windows.conf          # 配置文件  

 

安装

先双击.msi文件安装完成安装(有的说将zip中解压出来的exe文件拷贝到安装目录中,但我感觉不用。2、并配置系统环境变量,如果在doc中直接cd到redis目录的话就不用啦)。

 

当然,还有一个 RedisService.docx 文件,看似是一些启动和安装服务的说明文档,但是照着他的指示来,你就会死的很惨,莫名其妙的死了,不知道原因。

【换机器重新测试后已查明,如果不是Administrator用户,就会出各种问题,服务安装以后启动不了等等问题,应该可以修改服务的属性-->登录用户等选项来修正.】

【如果你安装的windows没有Administrator账户,请参考这篇文章:Windows 7 启用超级管理员administrator账户的N种方法 】

 

三、启动

启动脚本如下:

redis-server  redis.windows.conf  

可以将其保存为文件 startup.bat ; 下次就可以直接启动了。

错误1:

D:\myProgram\Redis>redis-server redis.windows.conf
[11452] 29 Apr 13:58:01.795 # Creating Server TCP listening socket *:6379: bind: No error

修改下 redis.windows.conf中的port 6379修改为port 6377

错误2:

但是在cmd之中执行这行命令之后报错:

D:\Develop\redis-2.8.12>redis-server.exe redis.windows.conf  
[7736] 10 Aug 21:39:42.974 #  
The Windows version of Redis allocates a large memory mapped file for sharing  
the heap with the forked process used in persistence operations. This file  
will be created in the current working directory or the directory specified by  
the 'dir' directive in the .conf file. Windows is reporting that there is  
insufficient disk space available for this file (Windows error 0x70).  
  
You may fix this problem by either reducing the size of the Redis heap with  
the --maxheap flag, or by starting redis from a working directory with  
sufficient space available for the Redis heap.  
  
Please see the documentation included with the binary distributions for more  
details on the --maxheap flag.  
   
Redis can not continue. Exiting. 

根据提示,是 maxheap 标识有问题,打开配置文件 redis.windows.conf ,搜索 maxheap , 然后直接指定好内容即可.

  1. .......  
  2. #    
  3. # maxheap <bytes>  
  4. maxheap 1024000000  
  5. .......  

然后再次启动,OK,成功.

D:\myProgram\Redis>redis-server  redis.windows.conf
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 3.0.501 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6377
 |    `-._   `._    /     _.-'    |     PID: 6316
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

[6316] 29 Apr 14:02:56.803 # Server started, Redis version 3.0.501
[6316] 29 Apr 14:02:56.805 * The server is now ready to accept connections on port 6377

然后可以使用自带的客户端工具进行测试。

双击打开 redis-cli.exe , 如果不报错,则连接上了本地服务器,然后测试,比如 set命令,get命令:

 
127.0.0.1:6379> set tiemao http://blog.csdn.net/renfufei  
OK  
127.0.0.1:6379> get tiemao  
"http://blog.csdn.net/renfufei"  
127.0.0.1:6379>  

这应该很好理解,连接上了本机的6379端口。

或者,重新开启一个dos窗口,输入下面的命令登录到redis上:

D:\myProgram\Redis>redis-cli -h 127.0.0.1 -p 6377
127.0.0.1:6377>
127.0.0.1:6377> set mykey bac123
(error) NOAUTH Authentication required.
127.0.0.1:6377> auth Sklwjl5
OK
127.0.0.1:6377> set mykey bac123
OK
127.0.0.1:6377> get mykey
"bac123"
127.0.0.1:6377>

如果需要帮助,可以在 cli窗口中输入 help查看,例如:

127.0.0.1:6377> help
redis-cli 3.0.501
Type: "help @<group>" to get a list of commands in <group>
      "help <command>" for help on <command>
      "help <tab>" to get a list of possible help topics
      "quit" to exit
127.0.0.1:6377> help @string

  APPEND key value
  summary: Append a value to a key
  since: 2.0.0

  BITCOUNT key [start] [end]
  summary: Count set bits in a string
  since: 2.6.0
...
...
 

根据提示,可以输入 help 空格 然后敲tab键,可以像命令提示一样告诉你可以有哪些帮助分组,多敲几个 tab 试试?
备注说明:

 

1. 这个版本是Win64的,所以32位windows就不要折腾了。

2. 我的操作系统是Windows 7 64位旗舰版,运行内存16GB,用户不是Administrator,而是 hasee,所以设置了下 redis-server.exe 和redis-cli.exe 的属性中的兼容性权限(以管理员身份运行),如果你运行出错,可能需要设置一下这里。

3. 什么360啊,UAC啊,防火墙啊,该关的请关闭。。。

4. 如果有其他问题,欢迎留言或者评论, 这只是一个心血来潮时的折腾
接触了好久Redis但一直没在windows下使用,请轻拍。

附加几个 bat 批处理脚本,请根据需要灵活配置

service-install.bat

 

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. redis-server.exe --service-install redis.windows.conf --loglevel verbose  

uninstall-service.bat

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. redis-server --service-uninstall  

startup.bat

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. redis-server.exe redis.windows.conf  



更多信息,请参考: Redis本地环境搭建.md

 

正确输出 hell word,测试成功!

转:Redis使用认证密码登录

 

Redis默认配置是不需要密码认证的,也就是说只要连接的Redis服务器的host和port正确,就可以连接使用。这在安全性上会有一定的问题,所以需要启用Redis的认证密码,增加Redis服务器的安全性。

1. 修改配置文件

Redis的配置文件默认在/etc/redis.conf,找到如下行:

#requirepass foobared

去掉前面的注释,并修改为所需要的密码:

requirepass myPassword (其中myPassword就是要设置的密码)

2. 重启Redis

如果Redis已经配置为service服务,可以通过以下方式重启:

service redis restart

如果Redis没有配置为service服务,可以通过以下方式重启:

/usr/local/bin/redis-cli shutdown
/usr/local/bin/redis-server /etc/redis.conf

3. 登录验证

设置Redis认证密码后,客户端登录时需要使用-a参数输入认证密码,不添加该参数虽然也可以登录成功,但是没有任何操作权限。如下:

$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.

使用密码认证登录,并验证操作权限:

$ ./redis-cli -h 127.0.0.1 -p 6379 -a myPassword
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "myPassword"

看到类似上面的输出,说明Reids密码认证配置成功。

除了按上面的方式在登录时,使用-a参数输入登录密码外。也可以不指定,在连接后进行验证:

$ ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth myPassword
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "myPassword"
127.0.0.1:6379> 

4. 在命令行客户端配置密码(redis重启前有效)

前面介绍了通过redis.conf配置密码,这种配置方式需要重新启动Redis。也可以通命令行客户端配置密码,这种配置方式不用重新启动Redis。配置方式如下:

127.0.0.1:6379> config set requirepass newPassword
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "newPassword"

注意使用命令行客户端配置密码,重启Redis后仍然会使用redis.conf配置文件中的密码。

 

5. 在Redis集群中使用认证密码

如果Redis服务器,使用了集群。除了在master中配置密码外,也需要在slave中进行相应配置。在slave的配置文件中找到如下行,去掉注释并修改与master相同的密码即可:

# masterauth master-password





Redis客户端:
https://redisdesktop.com/download

 

 


posted on 2015-08-04 18:24  duanxz  阅读(534)  评论(0编辑  收藏  举报