Làm cách nào để khởi động lại redis mà tôi đã cài đặt với brew?


66

Tôi đã sử dụng brew để cài đặt redis (một máy chủ cơ sở dữ liệu lưu trữ khóa / giá trị) cho ứng dụng node.js của tôi.

brew install redis

Tuy nhiên, nó dường như biến mất và rất dễ bay hơi. Bởi vì tôi đang sử dụng redis làm cửa hàng phiên của mình, tôi cần có thể nhanh chóng khởi động lại nó trên máy mac của mình khi điều này xảy ra.

Làm cách nào để khởi động lại redis mà tôi đã cài đặt với brew?

Câu trả lời:


64

cập nhật

dịch vụ sản xuất bia đã hết hạn do không ai muốn duy trì nó. kiểm tra bên dưới: https://github.com/Homebrew/homebrew/issues/28657

kiểm tra launchctlchức năng thay thế.

hoặc là lunchy

Vì vậy, thay vì:

launchctl load ~/Library/LaunchAgents/io.redis.redis-server.plist

bạn có thể làm được việc này:

lunchy start redis

và:

lunchy ls

tài liệu tham khảo: https://github.com/eddiezane/lunchy

Nó được sử dụng để có thể sử dụng như dưới đây:

brew services restart redis

nên là lệnh khởi động lại mà bạn muốn. Bạn cũng có thể chạy

brew services list

nơi sẽ cung cấp cho bạn danh sách các dịch vụ sản xuất bia của bạn.


2
Tôi đã phải cài đặt lại redis với brew để có được nó trong phần khởi động, sau đó nó hoạt động tốt
Stuart Nelson

1
"Cảnh báo: dịch vụ sản xuất bia không được hỗ trợ và sẽ sớm bị xóa."
user72923

2
Thật là ngu ngốc để loại bỏ các phím tắt hữu ích như vậy. Nhưng đó là lỗi. Tôi có thể dừng redis với brew services, nhưng sau đó tôi không thể bắt đầu lại.
Phương Nguyễn

3
brew không hỗ trợ động từ "dịch vụ" nữa kể từ 0.9.5
oDDsKooL

4
Xin lưu ý rằng brew hiện hỗ trợ lệnh dịch vụ thông qua một cú chạm. Xem câu trả lời dưới đây, nó là một câu trả lời phù hợp hơn bây giờ.
GrayedFox

38

Kể từ tháng 7-2017 Bạn có thể sử dụng brew services.

Bạn cần brew tap homebrew/servicesvà sau đó thw sau đây sẽ hoạt động như mong đợi:

Tải về brew install redis

khởi đầu brew services start redis

dừng lại brew services stop redis

khởi động lại brew services restart redis

Thêm thông tin tại đây: https://github.com/Homebrew/homebrew-service


câu trả lời mâu thuẫn ở trên nói brew serviceslà không dùng nữa.
chovy

5
@chovy Họ đã không được chấp nhận vì thiếu bảo trì, nhưng bây giờ trở lại như một vòi bia . Như bạn có thể thấy cam kết cuối cùng là từ 27 ngày trước .
microspino

3
Đây là một câu trả lời phù hợp và cập nhật hơn bây giờ so với câu trả lời ở trên và thực hiện nhanh hơn so với launchctlcách làm thủ công.
GrayedFox

2
Đó là năm 2017 và tôi đang sử dụng Brew v1.3.6 và điều này hoạt động hoàn toàn tốt.
Ryan Taylor

23

Bia không hỗ trợ serviceslệnh nữa.

Cách được đề xuất là sử dụng launchctllệnh os x's .

Trước tiên, bạn cần thiết lập redis như một dịch vụ được quản lý bởi launchctl:

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

Sau đó, bạn có thể sử dụng launchctl load/ launchctl unloadđể bắt đầu / dừng dịch vụ:

$ # start redis server
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
$
$ # stop redis server
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

brew 0.9.5 dịch vụ hỗ trợ, ở đây họ là $ brew --version Homebrew 0.9.5 (git sửa đổi bf22; cam kết cuối cùng 2016/03/06) Dịch vụ brew $ danh sách Tên Tình trạng tài Plist postgresql ngừng redis ngừng $
Amic MING

19

Tôi thấy tất cả các tùy chọn được liệt kê trong gói brew ( brew info redis) là rất có lỗi. Ví dụ, redis ném một loạt lỗi nếu nó không được bắt đầu bằng root. Tôi đã kết thúc việc thực hiện cuộc gọi trực tiếp với sudo và xóa các tập tin launchctl.

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

Tôi đã hy vọng có một cách để dễ dàng khởi động lại redis từ dòng lệnh, nhưng điều đó dường như không thể. Do đó, tôi chạy với chế độ daemon được đặt thành 'không' và xem nó đăng nhập thành thiết bị xuất chuẩn, sau đó tôi có thể giết nó dễ dàng.


1
Tôi đã nối lệnh này với '& disown' vào nền và tách ra khỏi quy trình
Ben Simpson

2
Xem câu trả lời khác sử dụng launchctl, nó hoạt động và được hỗ trợ bởi công thức pha chế.
oDDsKooL

1

Đối với Homebrew 1.5,14

redis-server


4
Chào mừng bạn đến với Siêu người dùng! Điều này trùng lặp thông tin hiện diện trong một câu trả lời khác - bạn có thể phân biệt nó không? :)
bertieb

Bây giờ nó giống như câu trả lời được chấp nhận !! (Bạn thực sự chỉ nên xóa câu trả lời này.)
robinCTS

không, không phải vậy. Anh ta bao gồm đường dẫn đến một tập tin conf. Rõ ràng không giống nhau, và không bắt buộc. Tôi biết tôi không muốn nhập đường dẫn đến tệp conf mỗi lần tôi bắt đầu và dừng Redis và tôi nghĩ rằng bất kỳ ai khác đọc nó (ngoài bạn) sẽ thấy điều đó có giá trị.
Miguel Coder
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.