## 配置
1. 獲取某一項配置`CONFIG GET CONFIG_SETTING_NAME`
2. 獲取所有配置`config get *`
3. 修改配置`CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE`
4. 參數說明
5. 查看redis安裝目錄`CONFIG GET dir`
5.
| 配置項 | 說明 |
| --- | --- |
| daemonize no | Redis 默認不是以守護進程的方式運行,可以通過該配置項修改,使用 yes 啟用守護進程(Windows 不支持守護線程的配置為 no |
| pidfile /var/run/redis.pid | 記錄守護進程的pid |
| port 6379 | 指定端口 |
| bind 127.0.0.0 | 綁定主機地址 |
| timeout 300 | 當客戶端閑置多長時間后關閉連接,如果指定為 0,表示關閉該功能 |
| loglevel notice | 修改日志級別(debug、verbose、notice、warning) |
| logfile stdout | 日志記錄方式,默認為標準輸出,如果配置 Redis 為守護進程方式運行,而這里又配置為日志記錄方式為標準輸出,則日志將會發送給 /dev/null |
| databases 16 | 設置數據庫的數量,默認數據庫為0,可以使用SELECT命令在連接上指定數據庫id |
| | |
## 數據類型
1. set key value
2. get key
3. del key
4. 判斷鍵是否存在`EXISTS key`
5. 給鍵設置過期時間 `EXPIRE key seconds`
### string
1. 一個鍵最多能存儲512M
2. 二進制安全
### Hash(哈希)
鍵值對集合
~~~
HMSET runoob field1 "Hello" field2 "World"
HGET runoob field1
~~~
### List(列表)
簡單的字符串列表,按照插入順序排序
~~~
lpush runoob redis
lrange runoob 0 10
~~~
### Set(集合)
string類型的無序集合
集合內元素的唯一性,第二次插入的元素將被忽略
~~~
sadd runoob redis
smembers runoob
~~~
### zset(sorted set:有序集合)
string類型元素的集合,且不允許重復的成員
每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序成員是唯一的,但分數(score)卻可以重復
~~~
zadd runoob 0 redis
ZRANGEBYSCORE runoob 0 1000
~~~
### HyperLogLog(基數)
去重,計數
```
pfadd key value
pfcount key
```
## 訂閱
創建頻道`SUBSCRIBE redisChat`
給頻道發消息`PUBLISH redisChat "Redis is a great caching technique"`
## 備份和恢復
備份`save`、`BGSAVE`
恢復:只需將備份文件 (dump.rdb) 移動到 redis 安裝目錄并啟動服務即可
### 緩存雪崩
過期時間相同,大批緩存同時過期產生
### 緩存穿透
數據庫中沒有的數據,緩存中自然也沒有,導致每次都去數據庫查
### 緩存擊穿
熱點數據,在緩存過期時突然大量請求進來,導致數據庫奔潰
## 優化
### 縮短鍵值對的存儲長度
### 使用lazy free(延遲刪除)特性
### 設置鍵值對的過期時間
### 禁用長耗時的查詢命令
### 使用slowlog優化耗時命令
### 使用Pipeline批量操作數據
### 避免大量數據同時失效
### 客戶端使用優化
### 限制Redis內存大小
### 使用物理機,不用虛擬機
### 檢查數據持久化策略
### 禁用THP特性
### 使用分布式架構增加讀寫速度
- php
- 安全
- php7
- 特性
- 編譯安裝
- 源碼整體框架
- 基本變量
- thinkphp3.2.3
- thinkphp5.0
- thinkphp6.0
- laravel
- 配置
- 路由
- artisan控制臺
- eloquent
- tinker
- composer
- 加密解密
- 小知識點
- 數組
- string
- 代碼簡潔之道
- 編譯
- 語法糖
- lumen
- smarty
- 錯題集
- 算法及數據結構
- 線性表結構
- 插入排序
- 冒泡排序
- 數據庫
- mysql
- oracle
- PostgreSQL
- redis
- sqlserver
- 前端
- 備忘
- js
- nodejs
- vue
- css
- electron
- vue
- 語法糖
- colorui使用筆記
- 微信小程序
- 操作系統
- windows
- bat
- 快捷鍵
- linux
- sed
- 問題解決
- git
- docker
- docker-compose
- 正則表達式
- ps
- lua
- 協議相關
- 問題思索
- Golang
- 測試
- 讀取和寫入json配置文件
- 類
- 接口
- mod
- gin
- fyne
- 禪道二次開發
- 服務
- apache
- 漏洞配置
- http server優化
- nginx
- 安裝
- 面試題庫
- freeswitch