Windows下Redis的使用
正文
Redis介绍
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。
区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。
Redis 与 Memcached 区别
-
Memcached是多线程,而Redis使用单线程。(个人认为Memcached在读写处理速度上优于Redis)
-
Memcached使用预分配的内存池的方式,Redis使用现场申请内存的方式来存储数据,并且可以配置虚拟内存。
-
Redis可以实现持久化(也就是说redis需要经常将内存中的数据同步到硬盘中来保证持久化),主从复制,实现故障恢复。
-
Memcached只是简单的key与value,但是Redis支持数据类型比较多。包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
Redis支持两种持久化方式:
(1):snapshotting(快照)也是默认方式.(把数据做一个备份,将数据存储到文件)
(2)Append-only file(缩写aof)的方式
这种方式是将内存中数据以快照的方式写到二进制文件中,默认的文件名称为dump.rdb.可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key键修改就自动做快照.
aof方式:由于快照方式是在一定间隔时间做一次的,所以如果redis意外down掉的话,就会丢失最后一次快照后的所有修改。aof比快照方式有更好的持久化性,是由于在使用aof时,redis会将每一个收到的写命令都通过write函数追加到文件中,当redis重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。
Window 下安装
下载地址:https://github.com/MSOpenTech/redis/releases。
Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。
解压后文件:
redis-benchmark.exe 基准测试
redis-check-aof.exe aof
redischeck-dump.exe dump
redis-cli.exe 客户端
redis-server.exe 服务器
redis.windows.conf 配置文件
注意:《Redis-x64-3.2.100.msi》同样是redis服务端,可以代替redis-server.exe,安装后以服务形式启动,然后用自带客户端工具检测。
1、服务端:
打开一个 cmd 窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe redis.windows.conf 。
如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。
输入之后,会显示如下界面:
默认端口为6379,出现这个界面说明启动成功。
如果要以服务形式启动,则
redis-server --service-install redis.windows-service.conf --loglevel verbose --service-name 服务名称
卸载服务命令:redis-server.exe --service-uninstall --service-name 服务名称
注意:作为服务运行的Redis配置文件,通常为redis.windows-service.conf,而不是redis.windows.conf。后者是以非系统服务方式启动程序使用的配置文件。
2、客户端:
用自带客户端redis-cli.exe检测。双击,连接成功。
运行 redis-cli.exe -h 127.0.0.1 -p 6379 。
(设置密码的情况下 输入密码 auth mypassword)
设置键值对 set myKey abc
取出键值对 get myKey
3、redis服务密码:
设置redis的密码:找到# requirepass foobared 改为 requirepass 我的密码 ,本机测试可不设置。
默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务。
设置密码后,客户端连接 redis 服务就需要密码验证,否则无法执行命令。
Redis可视化工具
RedisDesktopManager一款好用的Redis桌面管理工具,支持命令控制台操作,以及常用,查询key,rename,delete等操作。
下载软件,请点击下面链接,进入下载页,选择对应版本:https://redisdesktop.com/download
操作使用如下图:
一、新建连接
输入redis主机host,端口号port,再起个生动形象,简明达意的别名。
二、该工具支持根据筛选条件查询key,add new key,reload等。
三、支持常用redis操作
针对目标key执行rename,delete,addrow,reload value操作。
四、命令控制台操作
该工具提供命令控制台:
Windows下Redis的主从复制
Redis拥有非常强大的主从复制功能,而且还支持一个master可以拥有多个slave,而一个slave又可以拥有多个slave,从而形成强大的多级服务器集群架构。目前在同一台window下安装三个redis实例,
其中主服务端口6379,从服务slave1为6380,从服务slave2为6381.
1.当前已安装并启动了主服务器,复制两份主服务的解压目录分别命名为Redis-salve1和Redis-salve2.如下图:
2.配置从服务器
分别配置两个配置文件(两个文件需要配置的内容相同,以redis.windows.conf为例):
改端口port为 6379和6380
改配置 Slaveof,取消注释,前面空格也删除,配置为:
3.启动两个从服务
切换到各自目录下,输入命令:redis-server --service-install redis.windows.conf --loglevel verbose --service-name 服务名称
4.打开服务,启动两个从服务并设置为自动启动
5.测试
在主服务下,用server-cli输入设置值,
在从服务下,获取。