Windows下安装Redis服务
一、Redis简单介绍:
Redis是有名的NoSql数据库
Redis是一个分布式缓存数据系统,存储Key-value的数据结构,可以以数据库的形式,缓存系统,消息处理器使用,它支持的存储value类型很多,例如,string、list(链表)、set(集合)、zset(sorted set--有序集合)、hash(哈希类型)等。
Redis和memcached的优缺点及区别:
(1) Redis和memcached两者都速度快,性能都比较高,要大于mongodb
(2) Redis支持丰富数据类型,支持string,list,set,sorted set,hash;memcache数据结构单一;mongodb支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富
(3) Redis支持事务比较弱,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行;Memcache 在并发场景下,用cas保证一致性;mongoDB不支持事务
(4) Redis可以持久化数据;memcache不支持,通常用在做缓存提升性能;MongoDB从1.8版本开始采用binlog方式支持持久化的可靠性
(5) 过期策略--memcache在set时就指定,例如set key1 0 0 8,即永不过期;Redis可以通过例如 expire 设定,例如expire name 10
(6) 分布式--设定memcache集群,利用magent做一主多从;Redis可以做一主多从。两者都可以一主一从
(7) 存储数据安全--memcache挂掉后,数据没了;Redis可以定期保存到磁盘(持久化);
(8) 灾难恢复--memcache挂掉后,数据不可恢复; Redis数据丢失后可以通过aof恢复
(9) Redis支持数据的备份,即master-slave模式的数据备份
(10) Redis是单线程工作模型,好处是:纯内存操作,单线程操作,避免了频繁的上下文切换,采用了非阻塞I/O多路复用机制
二、五种数据类型的应用场景
3.1 string的应用场景
普通的 key-value键值对都可以用 string来保存,例如:
1. 访问量统计,每次访问博客和文章,都用 incr 命令加一。
2. 做缓存。
3.2 list 的应用场景
作为队列,因为 list 的两端操作比较方便,所以可以用于一些需要获取最新数据的场景,如新闻类应用的最新新闻。
3.3 hash 的应用场景
用于存储、修改对象属性。比如:用户(姓名、性别、爱好),文章(标题、发布时间、作者、内容)。其中 用户相当于key,(姓名、性别、爱好)相当于存储的value。
Hash 是一个 String 类型的 field(域)和 value(值)的映射表,Hash 特别适合存储对象。Redis 中每个 Hash 可以存储 2^32-1 个键值对(4,294,967,295)。
- 缓存对象数据
- 缓存购物车信息
- 缓存商品信息
- 计数器
3.4 set 的应用场景
1. 好友推荐,根据set的内容求交集,大于某个阈值就可以推荐。
2. 利用set的唯一性,统计网站内所有独立ip。
3.5 zset的应用场景
1. 排行榜,因为zset 本来就是有序的,并且有排序功能。
三、Windows下安装Redis
这里本人使用的是3.2版本的Redis,此版本只能安装在64位的操作系统中,此版本安装压缩包云盘连接:http://pan.baidu.com/s/1skQUB3R,密码:xcst
下载Redis-x64-3.2.100.rar文件之后直接解压到指定目录就完成了Redis的安装了,解压成功后,在解压后的文件夹中有几个可执行文件如下:
redis-server.exe: 服务端运行程序;
redis-check-aof.exe: 更新日志检查;
redis-benchmark.exe: 性能测试,用于模拟同时由N个客户端发送M个set/get查询;
redis-cli.exe: 服务端开启后,我们的客户端就可以输入各种命令测试。
redis.windows-service.conf: 服务端配置文件,默认的IP是127.0.0.1 默认端口是6379
三、使用命令窗口运行redis服务:
1. 打开一个cmd 窗口(管理员身份运行),使用cd命令切换目录到自己解压后文件夹的目录中(如:我的是D:\Program Files\Redis-x64-3.0.500),
运行 redis-server.exe redis.windows.conf,出现下图
这时候另启一个cmd窗口,原来的cmd窗口不可关闭,不然Redis服务端就关闭了,就无法访问了。
2. 还是一样切换到redis目录下(我的是D:\Program Files\Redis-x64-3.0.500),
运行redis-cli.exe -h 127.0.0.1 -p 6379
设置键值对 set key 123
取出键值对 get key
出现下图说明测试运行成功
问题:但这样执行redis-server.exe redis.windows.conf命令开启Redis服务不切合实际,应该设置在服务中启动。
解决方案:
3. 安装成Windows服务—开机自启
打开一个cmd 窗口(管理员身份运行),使用cd命令切换目录到自己解压后文件夹的目录中(如:我的是D:\Program Files\Redis-x64-3.0.500),
运行redis-server --service-install redis.windows-service.conf
作为服务运行的Redis配置文件,通常为redis.windows-service.conf,而不是redis.windows.conf。小心不要选错了。打开cmd窗口输入services.msc,Redis出现在服务中,则表明已经作为windows服务了,手动去启动该服务,并设置启动类型为自动。
已经启动redis的windows服务,如下图所示:
四、Redis windows本地服务启动无法连接问题
Redis配置文件中默认设置了bind 127.0.0.1的原因。修改Redis配置文件redis.windows-service.conf中bind配置, 修改完成后重启服务
五、Redis可视化管理工具:RedisStudio
百度云连接:http://pan.baidu.com/s/1gfIbLar 密码:mpne