Redis 简介
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、,是一个高性能的key-value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis与其他key-value存储有什么不同?
-
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
-
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
参考: Redis——Windows安装_鱼骨头科技-CSDN博客_redis安装 windows
Redis_windows版的安装方法_潇洒哥的运维之道-CSDN博客_rediswindows版本安装
一、目标
在windows环境下安装配置redis数据库。
二、环境
windows10 64bit、redis64-3.0.501 (for windows64bit)
三、软件下载
1.Redis数据库下载。GitHub - ServiceStack/redis-windows: Vagrant redis configuration and the binary releases of MS Open Tech redis port of windowshttps://github.com/ServiceStack/redis-windows 下载的速度可能比较慢
点右侧的Clone or download,然后在弹出的窗口点Download ZIP。下载就行了。
2.点击release,可选择不同版本进行下载。
四、安装redis数据库
下载好是个zip压缩包,指定路径进行解压,,本文使用D:\JAVA\redis64-3.0.501 路径。
解压内容如下:
1. 临时服务安装
打开一个 cmd 窗口 使用 cd 命令切换目录到D:\JAVA\redis64-3.0.501 路径,运行:
redis-server.exe redis.windows.conf
显示如下界面,则服务端启动成功。
备注:通过以上面命令,会创建Redis临时服务,不会在window Service列表出现Redis服务名称和状态,此窗口关闭,服务会自动关闭。可以装一个Redis Management测试一下,当关闭这个临时服务是数据库连不上的。
现在进行客户端调用,因为只有临时服务,所以不要关闭上面窗口,另外打开一个 cmd 窗口 使用 cd 命令切换目录到D:\JAVA\redis64-3.0.501 路径,
运行:
redis-cli.exe
客户端启动完成。
敲入Set age 34 返回OK ,表示写入内存中;我们再敲get age,会返回一个Value值34,如下图:
2.默认服务安装 我们不可能每次要用Redis都去开一下临时服务,可不可以跟其它服务一样能够开机自启?当然是可以得,但是有点区别,后续会讲。进入Redis安装包文件下,敲入命令注册服务:
redis-server.exe --service-install redis.windows.conf --loglevel verbose
注:(须关闭临时服务,否则安装不上)
根据英文提示显然服务已经安装了,在window Service列表中能看到,但是没启动,也无法手动启动,只有敲命令启动/暂停/卸载服务:
redis-server.exe --service-start
redis-server.exe --service-stop
redis-server.exe --service-uninstall
(类似如上插图)
3.自定义服务安装 将服务重命名。进入Redis安装包文件下,注册服务:
redis-server.exe --service-install redis.windows.conf --Service-name RedisServer1 --loglevel verbose
备注:通过以上面命令,会在window Service列表出现"redisserver1"服务,但此服务不是启动状态,需要调下面命令启动服务。
与默认安装一样,唯一不同的就是在相应安装服务、启动、关闭、卸载服务时需要加上自定义Redis服务名:
redis-server.exe --service-start --Service-name RedisServer1 redis-server.exe --service-stop --Service-name RedisServer1 redis-server.exe --service-uninstall --Service-name RedisServer1
通过命令行卸载自定义服务后,电脑重启一下,卸载服务会全部完成
4.Redis主从服务安装 主从服务可以实现负载均衡,其实就是把上面Redis安装文件包,拷贝到相应目录,修改主、从服务器配置文件中IP、Port,同时从服务器要指定主服务器 的IP、Port,按照Redis自定义服务安装中命令进行服务安装、服务启动、服务关闭、服务卸载即可使用。
我本地主从服务器安装包都还是在D:\redis-win目录,文件夹Redis-x64-3.2.100为主服务,文件夹Redis-x64-3.2.100-2则是从服务,用的都是本地IP:127.0.0.1,生产环境大家可以根据自己实际情况进行设置。
主服务器(RedisServer1)redis.windows.conf修改如下:port 6379(默认),不需要作修改;
从服务器(RedisServer2)redis.windows.conf修改如下:port 6380;slaveof 127.0.0.1 6379,修改地方看下图:
我们用RedisManagement分别进行两个端口连接做客户端,在主服务添加键可以同步到从服务,从服务添加无效。如果从服务没有配置从属关系,我们可以在Redis管理器中对从服务进行配置,打开控制台,输入slaveof 127.0.0.1 6379,效果一样。
我们安装从服务时候,可以不通过配置文件来安装指定端口和指定主机。redis-server.exe --service-install redis.windows.conf --Service-name RedisServer2 --loglevel verbose --port 6380,这样也是指定端口安装。
运行从服务redis-cli.exe,,这跟RedisManagement一样,也能配从属关系。
五、管理客户端GUI程序
1.客户端管理程序Redis Desktop Manager
2.我用的版本是Redis Desktop Manager v.0.7.6.15,一路下一步安装即可。
3.连接Redis服务器
一个简单的界面管理器。
连接成功后,如图所示。
六、REDIS数据库的用途
用于用户登录验证的session。因为redis数据库读取的速度较快,所以可以提高用户访问网站的速度。
redis+mysql:
看到很多网站都是用redis作为mysql的缓存使用。
mysql存储在磁盘里,redis存储在内存里,redis既可以用来做持久存储,也可以做缓存,而目前大多数公司的存储都是mysql + redis,mysql作为主存储,redis作为辅助存储被用作缓存,加快访问读取的速度,提高性能。
目前基本都是mysql(主) + redis(辅),在需要性能的地方使用redis,在不需要高性能的地方使用mysql。