**Redis 字符串(String)**
字符串類型是Redis最基礎的數據結構,字符串類型可以是JSON、XML甚至是二進制的圖片等數據,但是最大值不能超過512MB。Redis 里的字符串是SDS簡單動態字符串,會根據實際情況動態調整。
**字符串數據類型的應用場景:**
**1.1、緩存**
簡單key-value存儲:在Web服務中,使用MySQL作為數據庫,Redis作為緩存。由于Redis具有支撐高并發的特性,通常能起到加速讀寫和降低后端壓力的作用。Web端的大多數請求都是從Redis中獲取的數據,如果Redis中沒有需要的數據,則會從MySQL中去獲取,并將獲取到的數據寫入Redis。
**1.2、分布式鎖**
setnx key value,當key不存在時,將key 的值設為 value ,返回1;
若給定的 key 已經存在,則setnx不做任何動作,返回0。
當setnx返回1時,表示獲取鎖,做完操作以后del key,表示釋放鎖;如果setnx返回0表示獲取鎖失敗,可以通過以上的思路來實現分布式鎖的機制。
**1.3、計數器**
Redis中有一個字符串相關的命令incr key,incr命令將 key 中儲存的數字值增一,返回結果分為以下三種情況:
值不是整數,返回錯誤
值是整數,返回自增后的結果
key不存在, key 的值會先被初始化為 0 ,返回1
比如文章的閱讀量,視頻的播放量等等都會使用redis來計數,每播放一次,對應的播放量就會加1,同時將這些數據異步存儲到數據庫中達到持久化的目的。
**1.4、共享Session**
在分布式系統中,用戶的每次請求會訪問到不同的服務器,這就會導致session不同步的問題,假如一個用來獲取用戶信息的請求落在A服務器上,獲取到用戶信息后存入session。下一個請求落在B服務器上,想要從session中獲取用戶信息就不能正常獲取了,因為用戶信息的session在服務器A上,為了解決這個問題,使用redis集中管理這些session,將session存入redis,使用的時候直接從redis中獲取就可以了。
- Redis介紹
- String類型的應用場景
- Hash類型的應用場景
- List類型應用場景
- Set類型應用場景
- Zset類型應用場景
- Redis官網
- 安裝Redis
- Redis配置文件詳解
- 配置Redis開機啟動
- Redis的命令行工具
- Redis的可視化管理軟件
- 各開發語言對應的Redis庫
- Server管理命令
- 通用命令
- String類型命令
- HASH類型命令
- LIST類型命令
- Set類型命令
- Sorted_Set類型命令
- ThinkPHP集成Redis
- SpringBoot集成Redis
- 實戰篇:優惠券功能概述
- 實戰篇:表單頁面實現
- 實戰篇:后端處理邏輯
- 實戰篇:優惠券類邏輯
- 實戰篇:優惠券列表
- 原理篇:Redis緩存雪崩
- 原理篇:Redis緩存擊穿
- 原理篇:Redis緩存穿透
- 進階篇:Redis的事務與持久化
- 進階篇:Redis集群
- 進階篇:Redis的發布訂閱模式
- 進階篇:Redis分布式鎖
- 進階篇:Redis分布式緩存
- 進階篇:一致性哈希
- 進階篇:Redis安全管理
- 進階篇:Redis性能優化