MacOs安装Redis并设置为开机、后台启动

news2024/11/17 1:50:47

前言

最近闲来无事,将自己的MBP系统重装里,导致里面原来安装的软件都需要重新安装,今天记录一下MacOs安装Redis并设置为开机启动、后台启动的步骤,安装过程略有波折,参考里几篇文章才搞定。

一、安装Redis

两种方式,我都尝试了,也都成功了,但第一种方式安装完后没有搞定开机自启动,所以又尝试了方法2:

1.去官网下载安装包手动编译、安装

1)下载redis

reids下载地址  http://download.redis.io/releases ,当前稳定版为redis-7.0.8.tar.gz

2)解压

tar zxvf redis-7.0.8.tar.gz

3)复制到 /usr/local/redis目录

cp redis-7.0.8 /usr/local/redis

4)编译redis

sudo make

5)如果是第一次,系统会要求下载xcode,大概2分钟下载完成,继续安装

sudo make install

6)至此安装成功,这时候千万不要启动Redis

因为没有配置路径,会出错,需要修改redis.conf的配置

我的redis.conf 在 /usr/local/redis-7.0.8目录下,不同版本或操作系统会稍有不同,大家可自行寻找。修改dir的路径:

7)启动redis

redis-server

此种方法可以启动成功。

2.使用HomeBrew安装

1)执行安装命令

brew install redis

第一次可能需要下载一些依赖包,如果执行完没有安装成功,请再执行一次这个命令。

2)查看安装信息,看看安装到哪个目录去了。

brew list redis

/usr/local/Cellar/redis/7.0.8/homebrew.mxcl.redis.plist这个文件比较关键,是我们设置开机自启动的关键。 

二、设置开机自启动

通过前面的安装,我们在控制台执行redis-server就可以启动了,但有个问题,这样启动好后需要一直开着这个窗口,关机重启后,需要重新启动才行,所以接着往下看。

网上一般提到的开机自启动设置方式,需要自己手动新建.plist这么一个文件,但大家看到了,实际上使用brew的安装方式,这个文件已经生成好了,但我尝试直接用这个文件去设置自启动,失败了。

1.先查看这个文件中的内容

vi /usr/local/Cellar/redis/7.0.8/homebrew.mxcl.redis.plist

复制一下我绿线画出来的部分,后面有用。

<string>/usr/local/opt/redis/bin/redis-server</string>
<string>/usr/local/etc/redis.conf</string>

提示下vi进去后的文本编辑方式:

i:进入编辑模式

esc:退出编辑模式

:q!:不保存退出

:wq:保存退出

2.设置为开机自启动

sudo launchctl load /usr/local/Cellar/redis/7.0.8/homebrew.mxcl.redis.plist

很可惜,报错了

按报错信息去搜索,大部分都说是因为文件的权限不对,要sudo chmod 600为这个权限,我也试过了,依然不行。

下面是正确的方式:

1)创建.plist配置文件

sudo vi /Library/LaunchDaemons/io.redis.redis-server.plist

注意,这里不要拷贝/usr/local/Cellar/redis/7.0.8/homebrew.mxcl.redis.plist这个文件,我开始耍小聪明,拷贝过来依然会报权限不足的问题,所以老老实实vi一个新文件出来。

2)将下面配置内容拷贝到io.redis.redis-server.plist文件中

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>io.redis.redis-server</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/opt/redis/bin/redis-server</string>
        <string>/usr/local/etc/redis.conf</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

3)检查路径是否正确

<string>/usr/local/opt/redis/bin/redis-server</string>
<string>/usr/local/etc/redis.conf</string>

要与/usr/local/Cellar/redis/7.0.8/homebrew.mxcl.redis.plist文件中的路径是一样的。

4)保存退出

:wq

5)执行开机自启动命令

sudo launchctl load /Library/LaunchDaemons/io.redis.redis-server.plist

6)验证是否生效

重启电脑,并执行redis-cli,显示为下图即成功

7)使用launchctl手动启动/关闭redis

  • 启动redis

sudo launchctl start io.redis.redis-server
  • 关闭redis

sudo launchctl stop io.redis.redis-server

8)可对上述命令进行简化(通过设置别名的方式)

  • 控制台输入cd,切换到用户目录
  • 编辑环境变量配置,将别名设置粘贴到配置文件
vi .bash_profile
alias redisstart='sudo launchctl start io.redis.redis-server'
alias redisstop='sudo launchctl stop io.redis.redis-server'
source ~/.bash_profile
source ./.bash_profile

保存退出即可!

三、总结

两种安装方式都可以按文章设置为开机自启动!

安装完毕,容易遇到的坑,权限不足,编译错误等,注意即可,耐心解决问题。

over!

参考文档:

1.MacOS redis开机启动设置_tacity的博客-CSDN博客_mac redis 开机启动

2.macOS安装redis并设置服务自启动_小范馆的博客-CSDN博客_macos redis 启动

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/186495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaEE】线程池

目录 线程池概念 线程池优点 使用线程池 Executor接口&#xff1a; ThreadPoolExecutor类&#xff1a; 构造方法 Executors工厂类&#xff1a; 工厂方法 线程池中的常用方法 线程池的工作流程 线程池的状态 RUNNING SHUTDOWN STOP TIDYING TERMINATED 简单实现…

Android10 开机向导流程

最近在弄开机向导&#xff0c;网上查了查&#xff0c;基本都是参照系统的​​​​​​Provision应用来做的&#xff0c;而且还要将apk打包到系统目录下的pri-app目录下&#xff0c;打包到其他目录下不行&#xff0c;参照着做是没问题&#xff0c;但是好奇为什么要这么做&#x…

esp32连接阿里云物联网平台进行MQTT通信

前提&#xff1a;IDE是采用arduino IDE&#xff0c;arduino使用的库是pubsubclient 开发板可以使用esp32&#xff08;esp8266也是一样的&#xff09; 已经学会pubsubclient库的基本使用 使用pubsubclient 库连接阿里云物联网平台 const char* ssid "........"; c…

java ssm校园勤工俭学助学志愿者兼职系统 idea maven

本论文主要论述了如何使用JSP技术开发一个校园勤工俭学兼职系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述校园勤工俭学兼职系统的当前背景以及系统开发的…

使用CCProxy+Proxifier实现代理

目录1.使用场景2.什么是网络代理&#xff1f;3.CCProxy3.1 说明3.2 下载安装3.3 使用说明4.Proxifier4.1 说明4.2 下载安装4.3 使用说明4.4 Proxifier CPU占用率高问题解决1.使用场景 很多时候当我们访问某个网络&#xff08;例如&#xff1a;校园网、企业网&#xff09;&#…

射频识别技术|期末考试知识点|重点题目|第1讲_RFID

课堂笔记 1.RFID技术 标签(芯片、天线、封装) 读写器 中间件和系统软件 公共服务体系 2.IC&ID

使用原始命令编译打包部署springboot-demo项目

目录简介源文件介绍编译编译restful-common编译manual-springboot打包&部署&执行jar命令介绍不打包直接运行打普通jar包&#xff0c;通过java -jar运行打fat jar通过java -jar打war&#xff0c;通过部署至tomcat运行纯手工命令开发打包部署的缺点参考简介 本文将使用j…

CUDA编程笔记(7)

文章目录前言共享内存的合理使用数组归约计算使用全局内存的计算引入线程块中的同步函数使用共享内存计算静态共享内存使用动态共享内存性能比较避免共享内存的bank冲突使用共享内存进行数组转置bank概念性能比较总结前言 cuda共享内存的合理使用。 共享内存的合理使用 共享…

TF-A移植

1.对tf-a源码进行解压 $> tar xfz tf-a-stm32mp-2.2.r2-r0.tar.gz 2.打补丁 $> for p in ls -1 ../*.patch; do patch -p1 < $p; done 3.配置交叉编译工具链 将Makefile.sdk中EXTRA_OEMAKE修改为 EXTRA_OEMAKECROSS_COMPILEarm-linux-gnueabihf- 4.复制设备树…

linux 部署jmeter

一、linux 安装jdk Java Downloads | Oracle 二、 linux上传jmeter 2.1 上传jmeter jmeter 下载地址&#xff1a; Apache JMeter - Download Apache JMeter 注意&#xff1a; 我先在我本地调试脚本&#xff08;mac环境&#xff09;&#xff0c;调试完成后&#xff0c;再在…

前端首屏优化

一. 打包分析 在 package.json 中添加命令 “report”: “vue-cli-service build --report” 然后命令行执行 npm run report&#xff0c;就会在dist目录下生成一个 report.html 文件&#xff0c;右键浏览器中打开即可看到打包分析报告。 二. 路由懒加载 component: () >…

MacOS - steam 蒸汽平台安装教程,带你躲避高仿网站的陷阱

MacOS - steam 蒸汽平台安装教程 MacOS 其实也是可以安装 Steam 平台的&#xff0c;虽然 steam 上的大多游戏暂时都不支持 MacOS&#xff0c;但还是有一些游戏可以玩的&#xff0c;而且近几年支持 MacOS 的游戏也是越来越多了。另外现在高仿网站特别多&#xff0c;所以才有了这…

transformer库使用

Transformer库简介 是一个开源库&#xff0c;其提供所有的预测训练模型&#xff0c;都是基于transformer模型结构的。 Transformer库 我们可以使用 Transformers 库提供的 API 轻松下载和训练最先进的预训练模型。使用预训练模型可以降低计算成本&#xff0c;以及节省从头开…

Grafana 系列文章(三):Tempo-使用 HTTP 推送 Spans

&#x1f449;️URL: https://grafana.com/docs/tempo/latest/api_docs/pushing-spans-with-http/ &#x1f4dd;Description: 有时&#xff0c;使用追踪系统是令人生畏的&#xff0c;因为它似乎需要复杂的应用程序仪器或 span 摄取管道&#xff0c;以便 ... 有时&#xff0c;使…

SurfaceFlinger学习笔记(七)之SKIA

关于Surface请参考下面文章 SurfaceFlinger学习笔记(一)应用启动流程 SurfaceFlinger学习笔记(二)之Surface SurfaceFlinger学习笔记(三)之SurfaceFlinger进程 SurfaceFlinger学习笔记(四)之HWC2 SurfaceFlinger学习笔记(五)之HWUI SurfaceFlinger学习笔记(六)之View Layout Dr…

react 实现表格列表拖拽排序

问题描述 在项目开发中&#xff0c;遇到这样一个需求&#xff1a;需要对表格里面的数据进行拖拽排序。 效果图如下所示&#xff1a; 思路 安装两个插件&#xff1a; react-sortable-hoc &#xff08;或者 react-beautiful-dnd&#xff09;array-move npm install --save r…

59 多线程环境普通变量作为标记循环不结束

前言 最近看到这篇例子的时候, [讨论] 内存可见性问题, 吧其中的 demo 拿到本地来跑 居然 和楼主一样, testBasicType 这里面的这个子线程 居然 不结束了, 卧槽 我还以为 只是可能 用的时间稍微长一点 哪知道 直接 无限期执行下去了, 然后 另外还有一个情况就是 加上了 -…

Segmenter论文解读

Segmenter: Transformer for Semantic Segmentation 论文&#xff1a;[2105.05633] Segmenter: Transformer for Semantic Segmentation (arxiv.org) 代码&#xff1a;[rstrudel/segmenter: ICCV2021] Official PyTorch implementation of Segmenter: Transformer for Semanti…

vue3+ts error TS7053:

在远程仓库拉取线上正常运行的项目&#xff0c;编译之后出现报错出现问题&#xff0c;逐步排查node版本是否与别人一致2.检查node_modules是否与别人一致检查到这一步就发现了是因为依赖版本不一致导致的原因因为目前vue-tsc等依赖更新频繁把这两个依赖的版本号锁死&#xff0c…

vuex

目录 1、什么是vuex 2、vuex的工作方式 3、vuex的使用场景 4、工作流程&#xff1a;View -> Actions -> Mutations -> State -> View 5、vuex的核心API ​ &#xff08;1&#xff09;state&#xff1a; ​ &#xff08;2&#xff09;mutations ​ &#xff…