1. 程式人生 > 實用技巧 >linux 安裝redis 完整步驟

linux 安裝redis 完整步驟

最近在linux伺服器上需要安裝redis,來存放資料,增加使用者訪問資料的速度,由於是第一次安裝,於是在百度上搜了一篇文章,按照這篇部落格,順利安裝好了,因此將博主的文章拷過來記錄一下,方便以後使用,也為需要的朋友提供一個方便,

參考博文地址:https://www.cnblogs.com/lauhp/p/8487029.html

安裝:

1.獲取redis資源

  wget http://download.redis.io/releases/redis-4.0.8.tar.gz

2.解壓

  tar xzvf redis-4.0.8.tar.gz

3.安裝

  cd redis-4.0.8

  make

  cd src

  make install PREFIX=/usr/local/redis

4.移動配置檔案到安裝目錄下

  cd ../

  mkdir /usr/local/redis/etc

  mv redis.conf /usr/local/redis/etc

5.配置redis為後臺啟動

  vi /usr/local/redis/etc/redis.conf //將daemonize no改成daemonize yes

6.將redis加入到開機啟動

  vi /etc/rc.local //在裡面新增內容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是開機呼叫這段開啟redis的命令)

7.開啟redis

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

8.將redis-cli,redis-server拷貝到bin下,讓redis-cli指令可以在任意目錄下直接使用

  cp /usr/local/redis/bin/redis-server /usr/local/bin/

  cp /usr/local/redis/bin/redis-cli /usr/local/bin/

9.設定redis密碼

  a.執行命令:redis-cli

  b.檢視現有的redis密碼(可選操作,可以沒有)

    執行命令:config get requirepass如果沒有設定過密碼的話執行結果會如下圖所示

  c.設定redis密碼

    執行命令:config set requirepass ****(****為你要設定的密碼),設定成功的話會返回‘OK’字樣

  d.測試連線

    重啟redis服務

    //(redis-cli -h 127.0.0.1 -p 6379 -a ****(****為你設定的密碼))

    輸入redis-cli 進入命令模式,使用 auth '*****' (****為你設定的密碼)登陸     

10.讓外網能夠訪問redis

    a.配置防火牆:firewall-cmd --zone=public --add-port=6379/tcp --permanent(開放6379埠)

          systemctl restart firewalld(重啟防火牆以使配置即時生效)

     檢視系統所有開放的埠:firewall-cmd --zone=public --list-ports

    

    b.此時 雖然防火牆開放了6379埠,但是外網還是無法訪問的,因為redis監聽的是127.0.0.1:6379,並不監聽外網的請求。

      (一)把資料夾目錄裡的redis.conf配置檔案裡的bind 127.0.0.1前面加#註釋掉

      (二)命令:redis-cli連線到redis後,通過 config getdaemonize和config getprotected-mode 是不是都為no,如果不是,就用config set 配置名 屬性 改為no。

      

常用命令  

  redis-server /usr/local/redis/etc/redis.conf //啟動redis

  pkill redis //停止redis

  解除安裝redis:

    rm -rf /usr/local/redis //刪除安裝目錄

    rm -rf /usr/bin/redis-* //刪除所有redis相關命令指令碼

    rm -rf /root/download/redis-4.0.4 //刪除redis解壓資料夾

8-啟動redis:

兩種方式:

redis-server &

加上`&`號使redis以後臺程式方式執行

或者是

redis-server

9-檢測後臺程序是否存在

ps -ef |grep redis

10-檢測6379埠是否在監聽

netstat -lntp | grep 6379

有時候會報異常

原因: Redis已經啟動

解決: 關掉Redis,重啟即可

  1. redis-cli shutdown
  2. redis-server

然後你就能看到Redis愉快的運行了.

使用redis-cli客戶端檢測連線是否正常

  1. redis-cli
  2. 127.0.0.1:6379>keys *
  3. (emptylistorset)
  4. 127.0.0.1:6379>setkey"helloworld"
  5. OK
  6. 127.0.0.1:6379>getkey
  7. "helloworld"

停止redis:

使用客戶端

redis-cli shutdown

因為Redis可以妥善處理SIGTERM訊號,所以直接kill -9也是可以的

kill -9 PID

#啟動redis服務端
$ src/redis-server


#啟動redis客戶端
$ src/redis-cli

Redis客戶端常見操作

Redis是key-value資料庫,支援五種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合)。

  • 當value是string型別,命令包括set get setnx incr del 等。

> set server:name "fido" // 設定鍵值
OK
> get server:name // 獲取鍵值
"fido"
> setnx connections 10 // set if not exists
OK
> incr connections // 原子性增加values值
(integer) 11
> incr connections
(integer) 12
> del connections // 刪除key
(integer) 1
> incr connections
(integer) 1

當value是list型別,命令包括rpush lpush llen lrange lpop rpop del 等。

> rpush friends "Alice" // 在末尾追加
(integer) 1
> rpush friends "Bob"
(integer) 2
> lpush friends "Sam" // 插入到開頭
(integer) 3

> lrange friends 0 -1 // 返回列表的子集,類似切片操作
1) "Sam"
2) "Alice"
3) "Bob"
> lrange friends 0 1
1) "Sam"
2) "Alice"
> lrange friends 1 2
1) "Alice"
2) "Bob"

> llen friends // 返回列表長度
(integer) 3
> lpop friends // 刪除並返回列表第一個元素
"Sam"
> rpop friends // 刪除並返回列表最後一個元素
"Bob"
> lrange friends 0 -1
1) "Alice"

> del friends // 刪除key
(integer) 1 // 1表示成功,0表示失敗

當value是set型別,命令包括sadd srem sismember smembers sunion del等。

> sadd superpowers "flight" // 新增元素
(integer) 1
> sadd superpowers "x-ray vision"
(integer) 1
> sadd superpowers "reflexes"
(integer) 1
> srem superpowers "reflexes" // 刪除元素
1

> sismember superpowers "flight" // 測試元素是否在集合中
(integer) 1
> sismember superpowers "reflexes"
(integer) 0
> smembers superpowers // 返回集合中所有元素
1) "x-ray vision"
2) "flight"

> sadd birdpowers "pecking"
(integer) 1
> sadd birdpowers "flight"
(integer) 1
> sunion superpowers birdpowers // 合併多個set,返回合併後的元素列表
1) "x-ray vision"
2) "flight"
3) "pecking"

> del superpowers // 刪除key

(integer) 1

當value是zset型別,命令包括 zadd zrange del等,注意給value一個編號用於排序。

> zadd hacker 1940 "Alan Kay" // 給value指定一個編號,比如以年份1940作為編號
(integer) 1
> zadd hacker 1906 "Grace Hopper"
(integer) 1
> zadd hacker 1953 "Richard Stallman"
(integer) 1
> zadd hacker 1965 "Yukihiro Matsumoto"
(integer) 1
> zadd hacker 1916 "Claude Shannon"
(integer) 1
> zadd hacker 1969 "Linux Torvalds"
(integer) 1
> zadd hacker 1957 "Sophie Wilson"
(integer) 1
> zadd hacker 1912 "Alan Turing"
(integer) 1

> zrange hacker 2 4 // 切片返回有序集合中元素
1) "Claude Shannon"
2) "Alan Kay"
3) "Richard Stallman"

> del hacker // 刪除key

(integer) 1

當value是hash型別,hash型別可以理解為字典,需要給value指定一個field用於對映,命令包括hset hmset hget hgetall hdel hincrby del 等。

> hset user:1000 name "John Smith" // 給value指定一個field,比如name
(integer) 1
> hset user:1000 email "[email protected]"
(integer) 1
> hset user:1000 password "s3cret"
(integer) 1
> hgetall user:1000 // 獲得hash表中所有成員,包括field和value
1) "name"
2) "John Smith"
3) "email"
4) "[email protected]"
5) "password"
6) "s3cret"

> hmset user:1001 name "Mary Jones" password "hidden" email
"[email protected]" // 設定多個field和value
OK
> hget user:1001 name // 根據field獲取value
"Mary Jones"

> hset user:1000 visits 10 // field可以對映到數字值
(integer) 1
> hincrby user:1000 visits 1 // 原子性增加value的值,增加1
(integer) 11
> hincrby user:1000 visits 10 // 增加10
(integer) 21
> hdel user:1000 visits // 刪除field及其value
(integer) 1
> hincrby user:1000 visits 1
(integer) 1

> del user:1000 // 刪除key

(integer) 1

設定和檢視key的生命週期,key過期會被自動刪除,命令包括expire ttl 等。

> set resource:lock "Redis Demo"
OK
> expire resource:lock 120 // 設定生命週期為120s
(integer) 1
> ttl resource:lock // 檢視當前生命週期還剩多少時間
(integer) 109
> ttl resource:lock // 120s後檢視,返回-2表示已過期或不存在
(integer) -2

> set resource:lock "Redis Demo 2"
OK
> ttl resource:lock // 返回-1表示永不過期
(integer) -1

檢視linux上面是否有安裝redis,redis啟動

1、檢測是否有安裝redis-cli和redis-server;

  1. [root@localhost bin]# whereis redis-cli
  2. redis-cli: /usr/bin/redis-cli
  3. [root@localhost bin]# whereis redis-server
  4. redis-server: /usr/bin/redis-server

Linux系統下設定redis的密碼

Linux系統下設定redis的密碼:

1、進入redis操作的命令列

執行命令:redis-cli

2、檢視現有的redis密碼(可選操作,可以沒有)

執行命令:config get requirepass如果沒有設定過密碼的話執行結果會如下圖所示

3、設定redis密碼

執行命令:config set requirepass ****(****為你要設定的密碼),設定成功的話會返回‘OK’字樣

4、重啟redis服務

ctrl+C退出當前的命令列模式後執行命令:

redis-cli -h 127.0.0.1 -p 6379 -a ****(****為你心設定的密碼)