Saya tampaknya memiliki redis-server
instance berjalan karena ketika saya mencoba memulai server baru dengan memasukkan redis-server
, saya disambut dengan yang berikut:
Opening port: bind: Address already in use
Saya tidak tahu cara menghentikan server ini dan memulai yang baru.
Apakah ada perintah yang bisa saya tambahkan redis-server
ketika saya mengetik CLI?
OS saya adalah Ubuntu 10,04.
redis-cli ping
. Server Redis yang berjalan akan meresponsPONG
.Jawaban:
Baik terhubung ke instance simpul dan gunakan perintah shutdown atau jika Anda berada di ubuntu Anda dapat mencoba me-restart server redis melalui init.d:
atau hentikan / mulai:
Di Mac
sumber
launchctl
untuk melakukan ini, dan pada sistem lain,systemctl
atauservice
.service redis-server stop
danservice redis-server start
, setelah menginstalnya denganapt-get install redis-server
.Cara yang lebih bersih dan lebih andal adalah masuk ke redis-cli lalu ketik
shutdown
Di redis-cli, ketik
help @server
dan Anda akan melihat ini di dekat bagian bawah daftar:Dan jika Anda memiliki instance redis-server berjalan di terminal, Anda akan melihat ini:
sumber
redis-cli shutdown
. (Anda dapat mengirim perintah seperti ini, misalnyaredis-cli set cat dog; redis-cli get cat
)redis-cli set cat dog; redis-cli get cat
perubahanredis-cli -a mypassword set cat dog; redis-cli -a mypassword get cat
, yang dapat mengganggu setelah beberapa perintah.alias redis-cli="redis-cli -a mypassword"
. Dengan cara ini Anda dapat membuat panggilan seperti di komentar asli saya tanpa harus memasok kembali kata sandi Anda pada setiap penggunaan.redis-cli shutdown
paling efektif. Jawaban yang diterima tidak bekerja untuk saya (OSX Lion). Terima kasih, @JesseBuesking.sumber
redis-cli.exe shutdown
redis-cli --help
bisa menutupi kasus ini.Untuk OSX, saya membuat alias berikut untuk memulai dan menghentikan
redis
(diinstal dengan Homebrew):Ini bekerja sangat baik untuk pengembangan lokal!
Homebrew sekarang memiliki
homebrew-services
yang dapat digunakan untuk memulai, menghentikan dan memulai kembali layanan. layanan homebrewbrew services
diinstal secara otomatis saat dijalankan.Jika Anda menggunakan
run
, maka itu tidak akan memulainya saat masuk (atau boot).start
akan memulairedis
layanan dan menambahkannya saat masuk dan boot.sumber
brew services stop redis
juga berfungsi! :)Ketik
SHUTDOWN
CLIatau
jika Anda tidak peduli dengan data Anda dalam memori, Anda juga dapat mengetik
SHUTDOWN NOSAVE
untuk mematikan server secara paksa.sumber
Coba
killall redis-server
. Anda juga dapat menggunakanps aux
untuk menemukan nama dan pid dari server Anda, dan kemudian membunuhnyakill -9 here_pid_number
.sumber
Opsi 1: pergi ke redis direktori instalasi dan arahkan ke
src
, dalam kasus saya:di mana 6379 adalah port default.
Opsi 2: cari proses redis dan bunuh
Dan kemudian mulai membunuh:
Saya menggunakan Centos 6.7, x86_64
semoga membantu
sumber
hentikan tipe server redis di terminal dengan pengguna root
pesan akan ditampilkan setelah menghentikan redis-server
jika Anda ingin memulai jenis redis-server
jika Anda ingin me-restart jenis server
sumber
service --status-all
tidak akan menunjukkan redis, makaservice
perintah apa pun akan gagalredis-server
. Tapi redis memang munculps -ef
. Saya tidak dapat menemukan dokumen terkait.sudo service redis start/stop/status
melakukan hal yang sama, keduanya pergi.Cara lain bisa jadi:
Bekerja pada * NIX & OSX
sumber
MacOSX - Berhasil :)
Langkah 1: Temukan Redis Server yang Sedang Berjalan
Langkah 2: Bunuh proses spesifik dengan menemukan PID (ID Proses) - Redis Sever
sumber
Jika Anda tahu pada port apa ia akan berjalan (secara default akan menjadi 6379), Anda dapat menggunakan perintah di bawah ini untuk mendapatkan pid dari proses menggunakan port itu dan kemudian dapat menjalankan perintah kill untuk pid yang sama.
perintah di atas akan memberi Anda pid.
bunuh
<pid>
;Ini akan mematikan server Anda.
sumber
systemd, ubuntu 16.04:
sumber
Biasanya masalah ini muncul setelah saya mematikan komputer saya (atau membiarkannya berjalan) dengan cara yang tidak teratur .. Saya percaya port macet terbuka, sementara proses berhenti tetapi terus terikat ke port sebelumnya.
9/10 kali perbaikannya bisa:
Baik untuk pergi.
sumber
Dalam kasus saya itu adalah:
Untuk mengetahui apa nama layanan Anda, Anda dapat menjalankan:
Dan itu akan menunjukkan kepada Anda setiap file Redis di sistem Anda.
sumber
jika Anda melakukan instal (mis. ubuntu) saat menginstal redis maka Anda dapat melakukannya:
seperti yang ditunjukkan oleh @ yojimbo87 :)
sumber
Cara lain bisa jadi:
sumber
Mengikuti bekerja untuk saya di MAC
sumber
Jika Anda menjalankan redis dalam wadah buruh pelabuhan, tidak ada jawaban saat ini yang akan membantu. Anda harus menghentikan wadah redis. Jika tidak, proses redis akan terus respawning.
sumber
Jika Anda tahu di port mana (default: 6379) server redis Anda berjalan, Anda bisa pergi dengan opsi 1 atau Anda dapat memeriksa proses redis Anda dan Anda dapat membunuh dengan opsi 2
opsi 1:
Matikan proses pada port:
opsi 2:
Temukan Server Redis yang sebelumnya Berjalan:
Bunuh proses spesifik dengan menemukan PID (ID Proses) - Redis Sever
Sekarang mulai server redis Anda dengan
sumber
Saya tidak tahu secara khusus untuk redis, tetapi untuk server secara umum:
OS atau distribusi apa? Seringkali akan ada perintah stop atau /etc/init.d / ... yang akan dapat mencari pid yang ada dalam file pid.
Anda dapat melihat proses apa yang sudah terikat ke port dengan
sudo netstat -nlpt
(opsi linux; rasa netstat lainnya akan bervariasi) dan memberi sinyal untuk berhenti. Saya tidak akan menggunakankill -9
server yang sedang berjalan kecuali benar-benar tidak ada sinyal atau metode lain untuk mematikannya.sumber
Perintah di bawah ini berfungsi untuk saya di Server Ubuntu
sumber
Di MacOSX,
Inilah yang bekerja untuk saya
sumber
Satu hal untuk memeriksa apakah perintah redis tidak berfungsi untuk Anda adalah apakah redis-server.pid Anda benar-benar dibuat. Anda menentukan lokasi di mana file ini berada
dan itu harus memiliki bagian yang terlihat seperti ini:
Periksa lokasi dan izin direktori PIDFile (dalam kasus saya, '/ run / redis'). Saya mencoba memulai kembali layanan yang masuk sebagai penerapan tetapi izin direktori terdaftar sebagai
drwxrwsr-x 2 redis redis 40 Jul 20 17:37 redis
Jika Anda memerlukan penyegaran pada izin linux, lihat ini . Tapi masalahnya adalah saya sedang menjalankan restart karena pengguna saya menyebarkan yang izin di atas adalah rx, tidak memungkinkan pengguna saya untuk menulis ke direktori PIDFile.
Setelah saya sadari, saya login menggunakan root, mengulang perintah restart pada redis (
service redis restart
) dan semuanya bekerja. Itu sakit kepala tapi mudah-mudahan ini menghemat waktu seseorang.sumber
Redis memiliki parameter konfigurasi
pidfile
(mis. /Etc/redis.conf - periksa kode sumber redis ), misalnya:Jika sudah disetel atau bisa disetel, alih-alih mencari proses id (pid) dengan menggunakan
ps + grep
sesuatu seperti ini bisa digunakan:Jika diperlukan, seseorang dapat membuat skrip berhenti redis seperti ini ( skrip default redis 5.0 init.d diadaptasi dalam kode sumber redis ):
sumber