1-Redis - 各平台搭建Redis
Redis5.0.7 for Ubuntu20.04
安装命令:sudo apt-get install -y redis-server
卸载命令:sudo apt-get purge --auto-remove redis-server
关闭命令:sudo service redis-server stop
开启命令:sudo service redis-server start
重启命令:sudo service redis-server restart
配置文件:/etc/redis/redis.conf
redis3.0.7 for centos7.9
centos7.9 + redis3.0.7
Redis release:http://download.redis.io/releases/
- 解决依赖问题:
[root@cs opt]# pwd
/opt
[root@cs opt]# yum -y install gcc automake autoconf libtool make
- 下载
tag
包并解压缩:
[root@cs opt]# wget http://download.redis.io/releases/redis-3.0.7.tar.gz
[root@cs opt]# tar xvf redis-3.0.7.tar.gz
- 编译安装:
[root@cs opt]# cd redis-3.0.7
[root@cs redis-3.0.7]# pwd
/opt/redis-3.0.7
[root@cs redis-3.0.7]# make && make install
安装完成后,默认安装目录是/usr/local/bin
,该路径默认就在path中,所以,我们也无需在手动添加redis到path中了。
PS:该/usr/local/bin
相当于Windows下的C:\Program Files
。
[root@cs redis-3.0.7]# pwd
/opt/redis-3.0.7
[root@cs redis-3.0.7]# ll /usr/local/bin/redis*
-rwxr-xr-x. 1 root root 2076240 Jul 30 07:16 /usr/local/bin/redis-benchmark
-rwxr-xr-x. 1 root root 25080 Jul 30 07:16 /usr/local/bin/redis-check-aof
-rwxr-xr-x. 1 root root 55912 Jul 30 07:16 /usr/local/bin/redis-check-dump
-rwxr-xr-x. 1 root root 2205848 Jul 30 07:16 /usr/local/bin/redis-cli
lrwxrwxrwx. 1 root root 12 Jul 30 07:16 /usr/local/bin/redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 4358232 Jul 30 07:16 /usr/local/bin/redis-server
到这一步,我们就可以在任意路径下,调用redis的相关命令了,如:
[root@cs redis-3.0.7]# pwd
/opt/redis-3.0.7
[root@cs redis-3.0.7]# redis-server -v
Redis server v=3.0.7 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=f1356b2709167cd3
注意,此时只是能够通过任意路径调用redis的相关命令,但redis服务并没有启动。
- 修改配置文件,centos中,默认的Redis配置文件,在其安装目录中,叫做
redis.conf
,一般我们不会直接修改这个文件,而是备份一份,或者重新新建一个配置文件,而新建的配置文件文件名不限制,配置文件放在哪个目录也不限制,只需要.conf
结尾即可。这里我就在/etc
的目录,新创建一个Redis的配置文件,叫做redis.conf
,然后填写一些基本的配置。
# 允许Redis服务后台启动
默认daemonize no 改为 daemonize yes
# 允许本地和远程访问
bind 127.0.0.1 改为 直接注释掉或者改成本机IP地址,或者0.0.0.0,否则默认的127.0.0.1影响远程连接
# 设置密码
添加Redis密码 改为 requirepass 你的自己定义的密码
# 总结其上就是,我们往/etc/redis.conf中写入下面四行配置项,我将bind参数注释了,你也可以写成bind 0.0.0.0
[root@cs redis-3.0.7]# pwd
/opt/redis-3.0.7
[root@cs redis-3.0.7]# vim /etc/redis.conf
[root@cs redis-3.0.7]# cat /etc/redis.conf
daemonize yes
# bind 0.0.0.0
requirepass 1234
- 现在,我们可以在任意目录启动Redis服务:
[root@cs redis-3.0.7]# redis-server /etc/redis.conf # 指定配置文件启动,并运行在后台
[root@cs redis-3.0.7]# ps -ef|grep redis |grep -v grep # 启动成功了
root 9807 1 0 07:35 ? 00:00:00 redis-server *:6379
- 现在,让我们打开一个新的终端就可以通过客户端访问服务端了。
首先,Redis允许任何请求连接,如果没有设置密码,你只要连接上就能进行操作了。所以,如果你的Redis服务启动时,没有配置密码,那么你这么连接上就能直接上手开干了。
[root@cs redis-3.0.7]# redis-cli # 这里默认连接的是6379端口的Redis服务
127.0.0.1:6379> ping
(error) NOAUTH Authentication required. # 由于我设置了密码,所以,这里提示需要认证,如果你没有设置密码,这里应该返回PONG
来说下认证的两种方式。下面是访问的同时携带密码,连接认证一起做了。
# -a 后面跟你的密码
# -p 后面是6379端口,其实这个-p参数可以不带,不带默认就是访问的6379端口的Redis
[root@cs redis-3.0.7]# redis-cli -a 1234 -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
另一种方式就是,先连接上,然后再认证:
[root@cs redis-3.0.7]# redis-cli # 连接肯定是没问题,但由于设置了密码,你未通过认证之前,你啥也做不了
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 1234 # 认证,auth命令后面跟你的密码
OK
127.0.0.1:6379> ping # 认证通过,你想干啥干啥
PONG
127.0.0.1:6379> quit # 常见的退出客户端命令有: quit/exit/ctrl+c 注意,退出客户端只是表示关闭客户端和服务端的连接,而不是停止服务端,这点要区分开
[root@cs redis-3.0.7]#
ok了。
docker
- 拉取Redis镜像
# 查询可用镜像
docker search redis
# 拉取镜像, 下面命令是最新版
docker pull redis
- 查看拉取的镜像
[root@r ~]# docker images | grep redis
redis latest 4cdbec704e47 9 days ago 98.2MB
- 启动一个redis容器
# 创建本地持久化目录
[root@r ~]# mkdir -p /docker_data/redis_data/
# 启动
docker run --name myredis -p 6379:6379 --restart=always -v /docker_data/redis_data/data:/data -d redis redis-server --appendonly yes
[root@r ~]# docker run --name myredis -p 6379:6379 --restart=always -v /docker_data/redis_data:/data -d redis redis-server --appendonly yes
7c322e3633d2dfa41e0cf79a5b3aa748ccc7f18ef44c82caec6e92a46e55f8d9
[root@r ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c322e3633d2 redis "docker-entrypoint.s…" 3 seconds ago Up 3 seconds 0.0.0.0:6379->6379/tcp myredis
参数说明:
--name myredis
,指定该容器名称,查看和进行操作都比较方便-p 6379:6379
,将redis的6379
端口(冒号右边)映射到宿主机的6379
端口(冒号左边)-v /docker_data/redis_data:/data
,文件挂载-d redis redis-server
,后台启动--appendonly yes
,开启redis 持久化
- 测试
docker exec -it 容器ID bash
[root@r ~]# docker exec -it 7c322e3633d2 bash
root@7c322e3633d2:/data# redis-cli
127.0.0.1:6379> set name zhangkai
OK
127.0.0.1:6379> get name
"zhangkai"
127.0.0.1:6379> exit
root@7c322e3633d2:/data# exit
Windows
win10 + redis3.2.100
截至到本博客编写时,redis还是没有正式支持Windows,但redis是开源软件,所以,微软开放技术小组开发并维护了针对Win64的Windows接口程序,提供了一个windows版本的redis分支。
所以我们可以从这个分支上下载安装包进行安装。
download
install
Redis 官方不建议在 windows 下使用 Redis,所以官网没有 windows 版本可以下载。还好微软团队维护了开源的 windows 版本,目前仅更新到了3.2版本:https://github.com/MicrosoftArchive/redis/releases
我也找到了其他开发者维护的Windows版本,更新到了5.0:https://github.com/tporadowski/redis/releases.
我这里以微软的那个3.2版本为例。
- 从github:https://github.com/MicrosoftArchive/redis/releases上下载
Redis-x64-3.2.100.zip
压缩包,然后在你的电脑上将压缩包解压到任意(没有空格、没有中文和特殊符号)路径,这个路径也是安装路径,我这里以C:\Redis-x64-3.2.100
为例。
PS:访问不了github的,从这个百度网盘地址下载吧,链接:https://pan.baidu.com/s/1eRDBiF6epvX5C_enmwY0Ug=n599,提取码:n599
然后编辑下配置文件,而关于配置文件。坑来了,Windows中的Redis有两个配置文件redis.windows-service.conf
和redis.windows.conf
,而这两个配置文件使用哪个都可以,我们后续使用的是redis.windows.conf
这个配置文件,注意你将来不要写错了配置文件。
配置文件中我们需要找到并且修改这几个命令,也就是你将你的配置文件的这几个参数写的跟我下面一样:
# bind参数,注释掉bind参数,因为默认bind的是127.0.0.1,当然你不管这个参数也行,因为都在Windows上装了,肯定是本地测试开发用,本地连本地,无所谓了,或者bind 0.0.0.0也行
# requirepass后面注意有个空格,空格后面才是你设置的密码,注意,要是启用密码,那么连接时就必须携带正确的密码,如果不启用密码,你远程连接时,就不要携带密码,我发现了好多例Django中使用Redis,但Redis不需要密码,而Django配置文件中还指定密码,结果连接失败...
# 最终修改就修改下面这两个参数
bind 0.0.0.0
requirepass 1234
然后保存下文件。
- 将redis安装路径添加到系统环境变量。
variable | path |
---|---|
Path |
C:\Redis-x64-3.2.100 |
- 将redis添加到Windows系统服务,这样可以设置后台自动运行,以后直接使用客户端访问就好了,比较简单。以管理员的身份运行CMD并将路径切换到redis安装路径下执行下面命令:
C:\Redis-x64-3.2.100>redis-server.exe --service-install redis.windows.conf
[6388] 20 Nov 09:35:59.132 # Granting read/write access to 'NT AUTHORITY\NetworkService' on: "C:\Redis-x64-3.2.100" "C:\Redis-x64-3.2.100\"
[6388] 20 Nov 09:35:59.132 # Redis successfully installed as a service.
上面的命令如果出现下面的报错:
C:\Redis-x64-3.2.100>redis-server.exe --service-install redis.windows.conf
[7348] 20 Nov 09:34:10.403 # HandleServiceCommands: system error caught. error code=1073, message = CreateService failed: unknown error
说明redis已经添加到Windows服务了,这个时候需要从服务中删除redis服务再重新添加即可。
# 卸载原有服务
redis-server.exe --service-uninstall
# 重新安装
redis-server.exe --service-install redis.windows.conf
- 当你将redis服务添加到了Windows的服务中,我们现在可以通过命令管理redis服务:
net start redis
net restart redis
net stop redis
当能成功的启动redis服务时,说明redis已经安装完成了。
你也可以在Windows服务中设置redis服务为自动运行。
testing
在任意路径打开CMD执行:
C:\Redis-x64-3.2.100>redis-cli --version
redis-cli 3.2.100
redis-cli.exe
是redis的客户端,你也可以执行这个客户端程序进入交互式环境:
# -a是指定登录密码
C:\Redis-x64-3.2.100>redis-cli -a 1234
127.0.0.1:6379> set name "zhangkai"
OK
127.0.0.1:6379> get name
"zhangkai"
完事了.....
for mac
- 下载redis,redis的tar包所有版本:http://download.redis.io/releases/,redis官网下载链接:http://download.redis.io/releases/
# 打开终端,切换到/usr/local这个目录,就是我们redis的安装目录
cd /usr/local
# 下载redis,我从这个连接中下载的,http://download.redis.io/releases/,以5.0.7版本为例
# 如果没有wget命令的话,你就手动的拷贝下面的连接,从浏览器中手动的下载
wget https://download.redis.io/releases/redis-5.0.7.tar.gz
# 解压缩
sudo tar xvf redis-5.0.7.tar.gz
# 重命下名
sudo mv redis-5.0.7/ redis
# 完事这个tar包就可以删掉了,不删也行
# sudo rm -rf redis-5.0.7.tar.gz
- 编译安装,cd到安装目录:
cd redis
sudo make test
sudo make install
- 添加src目录到环境变量
# 先cd到src
cd src
# 然后pwd一下,获取绝对路径
pwd
# 拷贝上面pwd的绝对路径
# 然后添加到环境变量
sudo vim ~/.bash_profile
export PATH=$PATH:/usr/local/redis/src
# 完事后source 一下
source ~/.bash_profile
- 启动和关闭redis,添加环境变量成功后,就可以在终端中的任意目录启动和关闭redis了
# 前台启动
redis-server
# 前台以配置文件的方式启动
redis-server /etc/redis.conf
# 后台启动
redis-server &
#后台以配置文件的方式启动
redis-server /etc/redis.conf &
# 使用redis-cli连接redis的server端
redis-cli
# 终止Redis服务
redis-cli shutdown
# 也可以登录到redis-cli中,再执行shutdown,适用于有密码的情况
# 在redis-cli中,执行下面的命令进行登录,否则没有权限
auth 你设置密码
- 补充,redis的配置文件的编写,根据我的习惯,我通常把它创建在/etc中,当然,这个配置文件你可以创建在任何目录下。
sudo vim /etc/redis.conf
bind 0.0.0.0
requirepass 1234
如果不指定配置文件,那么它默认会读取安装目录中的redis.conf
。
that's all
docker安装redis并以配置文件方式启动 | docker hub redis | https://github.com/MicrosoftArchive/redis/releases | Redis下载及安装(windows版) | Redis安装系统服务1073错误 | redis支持windows吗