Redis的安装与配置
- 一、Redis简介
- 二、下载Redis
- 三、Windows环境安装
- 3.1 Windows安装redis
- 3.2 Windows设置Redis服务
- 四、Linux环境安装
- 4.1 上传解压缩方式
- 4.2 联网下载安装方式
- 4.3 redis安装报错问题汇总
- 4.3.1 编译失败——gcc版本问题
- 五、配置文件简单说明
- 5.1 redis.conf配置文件
- 六、Redis 命令
- 6.1 redis服务查看相关命令
- 6.1.1 查看Redis是否正在运行
- 6.2 redis操作命令
- 七、Redis桌面可视化工具安装
- 7.1 redis desktop manager
- 7.2 Redis Client
- 7.3 Redis Studio
一、Redis简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
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环境安装
3.1 Windows安装redis
- 根据本地Windows环境选择32或者64位,从https://github.com/microsoftarchive/redis/releases 上下载对应Redis-x64-xxx.zip压缩包,解压到本地。
- 运行中输入cmd,进入到解压后的redis目录,执行
redis-server redis.windows.conf
3.2 Windows设置Redis服务
上述3.1 中一旦关闭黑窗口,redis服务就停了。所以我们把它做成一个服务。
执行命令
redis-server –service-install redis.windows-service.conf –loglevel verbose
输入命令之后没有报错,表示成功了,刷新服务,会看到多了一个redis服务。
卸载服务:redis-server –service-uninstall
开启服务:redis-server –service-start
停止服务:redis-server –service-stop
四、Linux环境安装
4.1 上传解压缩方式
将下载好的redis压缩包上传到Linux服务器,参考4.2的步骤
4.2 联网下载安装方式
-
进入官网找到下载地址 https://redis.io/download,右键Download按钮,选择复制链接。
-
执行如下命令远程联网下载
wget http://download.redis.io/releases/redis-6.0.6.tar.gz
-
解压缩
tar -zvxf redis-6.0.6.tar.gz
-
一般我们都会将redis安装目录放置到 /usr/local/redis目录,
mv ../redis-6.0.6 /usr/local/redis
-
cd到/usr/local/redis目录,输入命令make执行编译命令
make
如果出现报错问题,参考4.3 安装报错问题
编译成功后如下图所示:
-
编译成功后,进入src文件夹,执行make install进行安装。
make install
执行成功如下图:
-
启动。进入src目录下,执行
./redis-server
4.3 redis安装报错问题汇总
4.3.1 编译失败——gcc版本问题
如果在执行make命令编译的时候出现如下所示错误:
- cc1: error: unrecognized command line option "-std=c11"
- server.c:xxxx:xx: error: ‘xxxxxxxx’ has no member named ‘xxxxx’(比如:server.c:5188:19: error: ‘struct redisServer’ has no member named ‘sofd’)
这一般都是 gcc的版本 不够引起的问题。
最新的redis6.0版本貌似需要gcc版本是5.3以上的。
采用如下方式升级gcc版本,或者自行下载指定版本安装(gcc官网地址)
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
注意:
scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。
如果要长期生效的话,执行如下:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
这时候你可以再看一下gcc的版本号
五、配置文件简单说明
5.1 redis.conf配置文件
Windows环境中名为 redis.windows.conf
可以直接使用cat、vim、less等Linux内置的读取命令读取该文件,或者也可以通过redis-cli命令进入redis控制台后通过CONFIG GET * 的方式读取所有配置项。
这里列举一些比较重要的配置项
配置项名称 | 配置项值范围 | 说明 |
---|---|---|
daemonize | yes、no | Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程(Windows 不支持守护线程的配置为 no ) |
port | 6379 | 指定 Redis 监听端口,默认端口为 6379 |
bind | 绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。 | |
protected-mode | yes 、no | 保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。 |
timeout | 300 | 当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能 |
loglevel | debug、verbose、notice、warning | 日志级别,默认为 notice |
databases | 16 | 设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到 |
rdbcompression | yes、no | 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。 |
dbfilename | dump.rdb | 指定本地数据库文件名,默认值为 dump.rdb |
dir | 指定本地数据库存放目录 | |
requirepass | 设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH < password> 命令提供密码,默认关闭 | |
maxclients | 0 | 设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。 |
maxmemory | XXX < bytes> | 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。 |
更多配置可以参考 https://www.runoob.com/redis/redis-conf.html
六、Redis 命令
6.1 redis服务查看相关命令
6.1.1 查看Redis是否正在运行
-
采取查看进程方式
ps -aux | grep redis
-
采取端口监听查看方式
netstat -lanp | grep 6379
6.2 redis操作命令
此处暂时先不写了,后边专门写一篇相关命令。
七、Redis桌面可视化工具安装
7.1 redis desktop manager
Redis Desktop Manager官网地址
目前这个工具是收费的了。
7.2 Redis Client
项目地址: https://github.com/caoxinyu/RedisClient
7.3 Redis Studio
项目地址: https://github.com/cinience/RedisStudio