最近在linux服務器上須要安裝redis,來存放數據,增長用戶訪問數據的速度,因爲是第一次安裝,因而在百度上搜了一篇文章,按照這篇博客,順利安裝好了,所以將博主的文章拷過來記錄一下,方便之後使用,也爲須要的朋友提供一個方便html
參考博文地址:https://www.cnblogs.com/lauhp...linux
1.獲取redis資源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.移動配置文件到安裝目錄下tcp
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 yesflex
6.將redis加入到開機啓動ui
vi /etc/rc.local //在裏面添加內容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是開機調用這段開啓redis的命令)spa
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
若是沒有設置過密碼的話運行結果會以下
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 get daemonize和config get protected-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解壓文件夾
兩種方式:
redis-server &
加上`&`號使redis之後臺程序方式運行
或者是
redis-server
ps -ef |grep redis
netstat -lntp | grep 6379
有時候會報異常
緣由: Redis已經啓動
解決: 關掉Redis,重啓便可
而後你就能看到Redis愉快的運行了.
redis-cli
客戶端檢測鏈接是否正常使用客戶端
redis-cli shutdown
由於Redis能夠妥善處理SIGTERM信號,因此直接kill -9也是能夠的
kill -9 PID
$ src/redis-server
$ src/redis-cli
Redis是key-value數據庫,支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
> 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
> 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表示失敗
> 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
> 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
> hset user:1000 name "John Smith" // 給value指定一個field,好比name
(integer) 1
> hset user:1000 email "john.smith@example.com"
(integer) 1
> hset user:1000 password "s3cret"
(integer) 1
> hgetall user:1000 // 得到hash表中全部成員,包括field和value
1) "name"
2) "John Smith"
3) "email"
4) "john.smith@example.com"
5) "password"
6) "s3cret"
> hmset user:1001 name "Mary Jones" password "hidden" email
"mjones@example.com" // 設置多個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
> 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操做的命令行
運行命令:redis-cli
二、查看現有的redis密碼(可選操做,能夠沒有)
運行命令:config get requirepass若是沒有設置過密碼的話運行結果會以下圖所示
三、設置redis密碼
運行命令:config set requirepass ****(****爲你要設置的密碼),設置成功的話會返回‘OK’字樣
四、重啓redis服務
ctrl+C退出當前的命令行模式後運行命令:
redis-cli -h 127.0.0.1 -p 6379 -a ****(****爲你心設置的密碼)