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/

  1. 解决依赖问题:
[root@cs opt]# pwd
/opt
[root@cs opt]# yum -y install gcc automake autoconf libtool make
  1. 下载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
  1. 编译安装:
[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服务并没有启动。

  1. 修改配置文件,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
  1. 现在,我们可以在任意目录启动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

  1. 现在,让我们打开一个新的终端就可以通过客户端访问服务端了。
    首先,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

  1. 拉取Redis镜像
# 查询可用镜像
docker search redis

# 拉取镜像, 下面命令是最新版

docker pull redis
  1. 查看拉取的镜像
[root@r ~]# docker images | grep redis
redis                  latest              4cdbec704e47        9 days ago          98.2MB
  1. 启动一个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 持久化
  1. 测试
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

github-microsoftarchive/redis-releases

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版本为例。

  1. 从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.confredis.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

然后保存下文件。

  1. 将redis安装路径添加到系统环境变量。
variable path
Path C:\Redis-x64-3.2.100
  1. 将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
  1. 当你将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

  1. 下载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
  1. 编译安装,cd到安装目录:
cd redis
sudo make test
sudo make install
  1. 添加src目录到环境变量
# 先cd到src
cd src 

# 然后pwd一下,获取绝对路径
pwd


# 拷贝上面pwd的绝对路径
# 然后添加到环境变量
sudo vim ~/.bash_profile

export PATH=$PATH:/usr/local/redis/src

# 完事后source 一下
source ~/.bash_profile
  1. 启动和关闭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 你设置密码
  1. 补充,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吗

posted @ 2020-04-10 14:16  听雨危楼  阅读(1244)  评论(0编辑  收藏  举报