在windows中安装使用redis的几种方法
背景:在学习redis的时候,刚开始直接用远程服务器安装redis,然后开放防火墙端口来让外部连接,为了方便没有设密码,也没有及时关闭端口,结果很快就被注入攻击用来挖矿了。redis配置文件中的注释也有说:因为redis运行非常快,外部攻击每秒可以尝试150k次密码,所以即使设密码也要使用很复杂的密码,否则很容易被破解。最后我还是选择一种合适的方式在windows下运行redis。
redis主要是运行在linux下的,官网没有提供windows版本,可以通过以下几种方法在windows系统下使用redis,部分方法只适用于win10。
1.下载windows专用版
github上有windows专用版
下载链接:https://github.com/dmajkic/redis/downloads
基本步骤:
- 下载软件,解压
- 根据系统进入32bit或64bit目录
- 双击打开redis-server.exe,运行redis服务
- 双击打开redis-cli.exe,运行命令窗口开始使用
这种直接运行的方式只能使用默认配置,配置文件在当前目录下:redis.conf,想要运行多个server的话,复制一份配置文件,修改端口,用cmd在当前窗口打开,redis-server.exe redis2.conf
优点:操作简单,下载解压就能用了
缺点:版本落后,可能导致学习时部分功能无法使用
2.安装wsl(windows subsystem for linux)--适用于win10
基本步骤:
打开windows系统中的wsl功能。可以通过面板打开或管理员模式下的powershell输入
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
,然后重启。安装ubuntu。在微软应用商店中搜索ubuntu,就可以下载安装对应的系统。目前免费的还有其它系统如debian等,centos只有收费版,本文以ubuntu为例。
apt源改为国内的,不然网速太慢。
sudo vim /etc/apt/sources.list
替换为以下内容
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
更新软件源列表
sudo apt-get update
安装redis-server
sudo apt install redis-server
配置文件位置:
/etc/redis/redis.conf
后面就跟在linux中一样了,也可以开启ssh,22端口,使用xshell来连接,假装自己有一台服务器。。。
配置文件路径: /etc/ssh/sshd_config 修改3项: Port 22 PermitRootLogin yes PasswordAuthentication yes
优点:可以使用新版软件,基本类似linux下的体验。
缺点:跟其它的虚拟机平台冲突,跟大部分安卓模拟器冲突
3.安装虚拟机
跟上面一种差不多,不展开了。
优点:兼容性更好,比wsl稳定
缺点:安装较麻烦,使用也不够方便,不是重度用户常驻后台的话每次使用还要打开软件,再开启系统。
4.docker
当前是使用window下的docker,基本步骤:
安装docker
- 先开启hyper-v
- 下载docker 安装
获取docker image
docker pull redis:latest
查看是否开启
docker images
创建并运行redis容器
docker run -itd --name myredis -p 6379:6379 redis
查看:docker container ls -all
参数:
- i:以交互模式运行容器,通常跟t一起使用
- t:为容器重新分配一个伪输入终端,通常与i一起使用
- d:后台运行容器
- p:指定端口映射,格式为:
本机端口:容器端口
,这样,外部就可以用本机IP:本机端口的方式访问到redis - name:容器名称
- redis:镜像名称,获取镜像时用redis:latest,运行容器时用redis也可以,毕竟默认就是latest
在redis容器执行
docker exec -it myredis /bin/bash
在打开的bash中测试redis-cli
这种方式对于经常使用docker的用户来说应该是比较方便的,自己也刚接触docker就不多评论了。
总结:
个人感觉wsl的方式比较方便且接近日常使用linux的体验,目前也是用这种方法,也许以后对docker更熟悉了会改用docker,到时候再更新。