快捷搜索:  汽车  科技

mac怎么安装homebrew(Mac上使用Homebrew来安装和启停Redis)

mac怎么安装homebrew(Mac上使用Homebrew来安装和启停Redis)HOMEBREW_NO_AUTO_UPDATE=1 brew install redis或者修改shell的配置:不过网上也提供了停止自动更新的方法 在安装的时候 直接安装:$ brew install redis这里需要吐槽的是 这个Homebrew 每次在安装的时候 最开始先要更新(update) 一下 这个速度实在是太慢了! 不知道是国内网络原因还是设计问题 每次都得等一会 真是忍不了!看看在最开始Homebrew 都干了啥:$ brew install redis Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/cask). ==> New Casks acco

#Redis# 现在基本上已经是开发的标配了 今天在学习下Redis 发现使用Homebrew 不仅可以安装 还可以用来启动和停止Redis 真是太方便了!

redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。


mac怎么安装homebrew(Mac上使用Homebrew来安装和启停Redis)(1)

本文预览:

  • 介绍了取消Homebrew auto update的方法 加快homebrew的响应速度
  • 介绍了plist文件
  • 介绍了launchctl的作用
  • 介绍了使用brew services start/stop redis的用法

使用Homebrew安装Redis

在Mac 平台上 安装软件 用Homebrew还是比较方便的

$ brew install redis

这里需要吐槽的是 这个Homebrew 每次在安装的时候 最开始先要更新(update) 一下 这个速度实在是太慢了! 不知道是国内网络原因还是设计问题 每次都得等一会 真是忍不了!

看看在最开始Homebrew 都干了啥:

$ brew install redis Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/cask). ==> New Casks accordance evkey miniforge skychart airbuddy f-bar mouse-fix slippi-dolphin aldente fawkes mubu smultron alipay-development-assistant finisher-fluxx munkiadmin space-saver around finisher-micro mxsrvs spaceman astah-uml finisher-neo n1ghtshade spark-ar-studio atemosc finisher-voodoo nault spotter atomic-wallet font-smoothing-adjuster neat-reader start audiogridder-plugin foobar2000 nuage stringz audiogridder-server forticlient-vpn okta-advanced-server-access superslicer aural fspy operator swiftbar banksiagui futubull opgg tencent-docs bleunlock fvim osculator textbuddy bluesnooze gather oss-browser the-archive bluewallet gdat parsify the-unofficial-homestuck-collection bome-network goldenpassport pathephone tradingview brewlet google-drive pibar trojanx cakebrewjs grid pictogram twobird celestia helo pika ultdata cinco imdone plasticscm-cloud-edition unclack cinderella imobie-m1-app-checker pokemon-trading-card-game-online uniflash circuitjs1 infinity pragli veepn clicker-for-netflix intellidock prezi-video vine-server clicker-for-youtube internxt-drive ptpwebcam vofa-plus code-composer-studio jandi-statusbar radicle-upstream volanta cog jellybeansoup-netflix ray wannianli colorwell kekaexternalhelper raycast waterfox curiosity kieler reamp webex curseforge kiwi-for-gmail redream webull daedalus-testnet kyokan-bob remnote wolfram-engine deadbeef lightform rhino xcodes decloner lightkey scrapp xournal-plus-plus deskreen little-navmap sengi yesplaymusic devbook locationsimulator shearwater-cloud youtube-downloader devutils macfuse signet zecwallet-lite digital mailtrackerblocker silicon zulufx dnagedcom mathinspector silicon-info zy-player duckstation megax simplelink-msp432-sdk dyalog melonds simplelink-msp432e4-sdk epoccam micro-sniff sitesucker-pro ==> Updated Casks Updated 3074 casks. ==> Deleted Casks ableton-live evom insomnia-designer mist racket-cs teamspeak-client archi facebook-ios-sdk irip monogame rhinoceros waterfox-current arrayfire fractal-bot jeromelebel-mongohub oni ringtones webex-teams barxtemp futuniuniu kekadefaultapp openxcom ripit yyets clashxr gfortran kode54-cog pins scaleft disablemonitor gifs master-password project-slippi-dolphin softu2f eventstore google-hangouts mega protonmail-unofficial tagalicious Warning: Treating redis as a formula. For the cask use homebrew/cask/redis

难道这也是为程序员#摸鱼#提供机会吗?~~ 这么一想心情就好多了[呲牙][呲牙].

不过网上也提供了停止自动更新的方法 在安装的时候 直接安装:

HOMEBREW_NO_AUTO_UPDATE=1 brew install redis

或者修改shell的配置:

--- Bash --- $ vim ~/.bashrc export HOMEBREW_NO_AUTO_UPDATE=1 --- Zsh --- $ vim ~/.zshrc export HOMEBREW_NO_AUTO_UPDATE=1

使用Source 来立刻更改:

$ source ~/.bashrc $ source ~/.zshrc

下面来安装一个iptable2mac来试试:

$ brew install iproute2mac ==> Downloading https://homebrew.bintray.com/bottles/python@3.9-3.9.1_6.big_sur.bottle.tar.gz ==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/48d123683fa125de9f02f7777683edda40e998f0e2dca492024c00bb ######################################################################## 100.0% ==> Downloading https://github.com/brona/iproute2mac/releases/download/v1.3.0/iproute2mac-1.3.0.tar.gz ######################################################################## 100.0%-#O#- # # ######################################################################## 100.0%

看 是不是快了很多!

配置Redis 启动选项

安装完之后 需要简单配置一下Redis的启动:

ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents

等下 什么是plist? 这有什么用?

看看官方的解释:

.plist是应用程序的“首选项”文件,其中保存了其首选项设置。通过丢弃然后重新启动应用程序,您摆脱了可能已损坏的旧用户设置首选项。这通常用于纠正用户可能遇到的应用程序问题。

其实说白了 plist 有点像Window的注册表 就是我们在Mac上使用软件的时候 基本每个软件都会有一个Preference( 首选项)的菜单 在这个菜单上可以增加一些自定义设置.

明白了plist的作用之后 可以来看看Redis的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>KeepAlive</key> <dict> <key>SuccessfulExit</key> <false/> </dict> <key>Label</key> <string>homebrew.mxcl.redis</string> <key>ProgramArguments</key> <array> <string>/usr/local/opt/redis/bin/redis-server</string> <string>/usr/local/etc/redis.conf</string> <string>--daemonize no</string> </array> <key>RunAtLoad</key> <true/> <key>WorkingDirectory</key> <string>/usr/local/var</string> <key>StandardErrorPath</key> <string>/usr/local/var/log/redis.log</string> <key>StandardOutPath</key> <string>/usr/local/var/log/redis.log</string> </dict> </plist>

这个就是一个xml文件 放到哪里才能起作用呢? 来看命令:

$ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents

为啥要放到~/Library/LaunchAgents这里面呢? 这就涉及到launchctl 这个工具的使用了.

launchctl 是什么呢?

launchctl是一个统一的服务管理框架,可以启动、停止和管理守护进程、应用程序、进程和脚本等。 launchctl是通过配置文件--plist文件来指定执行周期和任务的。

看明白了吧 launchctl 作用就跟crontab 差不多 可以启动和调度别的程序 不过launchctl需要plist 文件的配合.

plist脚本一般存放在以下目录:

  • /Library/LaunchDaemons -->系统启动之后,即使用户不登陆系统也会被执行
  • /Library/LaunchAgents -->用户登陆系统后才会被执行

更多的plist存放目录:

~/Library/LaunchAgents 由用户自己定义的任务项
/Library/LaunchAgents 由管理员为用户定义的任务项
/Library/LaunchDaemons 由管理员定义的守护进程任务项
/System/Library/LaunchAgents 由Mac OS X为用户定义的任务项
/System/Library/LaunchDaemons 由Mac OS X定义的守护进程任务项

在这里 我们需要把redis的plist文件放到~/Library/LaunchAgents目录 也就是

$ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents启动Redis

下面开始启动Redis 也有几种方法.

最简单的方法 还是使用Homebrew:

$ brew services start redis ==> Successfully started `redis` (label: homebrew.mxcl.redis)

Homebrew services 有什么功能? 打开help看看:

$ brew services --help Usage: brew services [subcommand] Manage background services with macOS' launchctl(1) daemon manager. If sudo is passed operate on /Library/LaunchDaemons (started at boot). Otherwise operate on ~/Library/LaunchAgents (started at login). [sudo] brew services [list]: List all managed services for the current user (or root). [sudo] brew services run (formula|--all): Run the service formula without registering to launch at login (or boot). [sudo] brew services start (formula|--all): Start the service formula immediately and register it to launch at login (or boot). [sudo] brew services stop (formula|--all): Stop the service formula immediately and unregister it from launching at login (or boot). [sudo] brew services restart (formula|--all): Stop (if necessary) and start the service formula immediately and register it to launch at login (or boot). [sudo] brew services cleanup: Remove all unused services. --all Run subcommand on all services. -d --debug Display any debugging information. -q --quiet Make some output more quiet. -v --verbose Make some output more verbose. -h --help Show this message.

可见 brew service 就是结合launchctl 框架 来实现对程序的启动和停止 帮助文档中还提到 如果命令行前面使用sudo 就使用系统级目录/Library/LaunchDaemons 否则就是当前用户级别目录~/Library/LaunchAgents.

Homebrew 用起来真香啊!

mac怎么安装homebrew(Mac上使用Homebrew来安装和启停Redis)(2)

如果不用Homebrew 那就稍微麻烦点:

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

使用launchctl 停止Redis:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

连launchctl 也不用 就用最原生的工具!

$ redis-server /usr/local/etc/redis.conf


本机验证Redis

Redis 运行在本机6379 端口 可以直接使用redis-cli来查看:

$ redis-cli 127.0.0.1:6379> ping PONG停止Redis:

简单的使用homebrew services 就可以:

$ brew services stop redis Stopping `redis`... (might take a while) ==> Successfully stopped `redis` (label: homebrew.mxcl.redis)


mac怎么安装homebrew(Mac上使用Homebrew来安装和启停Redis)(3)

草长莺飞 正是学习之时!

猜您喜欢: