1. 程式人生 > 實用技巧 >在linux安裝redis

在linux安裝redis

Redis簡介

資料庫分兩類

  • 關係型資料庫: 資料以虛擬表格的形式儲存! mysql,sqlite,oracle,sqlserver,postgresql等...
  • 非關係型/面向物件資料庫/快取資料庫: 儲存的key:value字串! redis,mongdb,memcache
    • 使用最多: redis
    • 資料儲存在記憶體中!

特點

  1. 以字典結構儲存資料
  2. 允許通過TCP協議讀取字典的內容
  3. 強大的快取系統, 可以為每個鍵設定TTL, 以及按照一定規則自動淘汰不需要的鍵
  4. 支援使用列表的形式構造任務佇列
  5. 資料儲存在記憶體中也可以持久化到硬碟
    重點: 儲存字串型別, 是鍵值對!

安裝

  • window
    解壓後直接使用
  1. 啟動服務端 redis-server.exe 2. 啟動內建客戶端 redis-cli.exe 3. 簡單指令
  2. 圖形客戶端
pang 
# 設定值
set key value 
set name zhangsn 
set age lisi
# 獲取值 
get key 
get name 
get age
# 查詢所有key 
keys *
# 設定有效期 
setex key senconds value 
setex yanzhengma 60 123456 # 表示驗證碼1分鐘之內有效!```

檔案說明
![](https://www.icode9.com/img/l/?n=20&i=blog/1832677/202012/1832677-20201217184745589-354012447.png)

* redis-benchmark.exe 測redis效能的程式,可以同時模擬N多客戶端查詢和賦值
* redis-check-aof.exe 更新日誌檢查–修復日誌
* redis-check-dump.exe 本地資料庫檢查
* redis.conf redis配置檔案
* redis-cli.exe 客戶端連線 redis伺服器工具
* redis-server.exe redis伺服器啟動程式

配置說明

配置檔案: redis.conf/redis.windows.conf

```python #埠 
port 6379 
# 允許遠端訪問 
bind:繫結IP地址,只允許來自指定網絡卡的Redis請求,如果想允許任意地址訪問將 bind 註釋掉就行。 
protected-mode: Redis 安全訪護層,預設開啟: 
關閉protected-mode模式,此時外部網路可以直接訪問 
開啟protected-mode保護模式,需配置bind ip或者設定訪問密碼# (1) 註釋 bind 127.0.0.1 
# (2) 如果允許匿名訪問,關閉保護模式 
protected-mode no 
# (3) 如果開啟保護模式,必須設定請求密碼客戶端在連線Redis時需要通過【AUTH 密碼】命令提供密碼 
requirepass 123456 #密碼任意 
# 設定 Redis 是否以守護程序模式執行。 (允許後臺啟動) daemonize yes```

啟動時指定配置檔案

```python cd /usr/local/bin 
./redis-server /user/local/etc/redis.conf #指定配置檔案啟動 (覆蓋redis的預設配置)```

Reids資料庫型別

常用的5種資料型別
* 字串
* Hash(雜湊值/物件)
* 集合(Set)
* 有序集合(zset)
* 列表(list)

字串
```python # 設定 
set name lisi 
# 獲取 
get name 
# 刪除 
del name 
# 查詢多個 
mget name age 
# 自增 
incr num 
#每次num加1! 變數不存在預設就是1 
# 自減
decr num 
# 長度 
strlen name 
# 是否存在 
exists name```

Hash
Hashhash儲存物件
工作中使用: 儲存各種列表:商品列表.新聞列表,購物車列表.....

![](https://www.icode9.com/img/l/?n=20&i=blog/1832677/202012/1832677-20201217185312218-171240766.png)

```python # 設定 
# HSET key field valueHGET key field 
# HMSET key field value [field value …] 多個屬性 
# HMGET key field [field …]HGETALL key 
hset car price 500 
hmset car price 500 name baoma

# 獲取 
hget 物件名 欄位 
hget car price 
hmget car name price```