前言
REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。
Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。它通常被稱爲數據結構服務器,因爲值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。
三大作用
- 數據庫
- 緩存
- 消息中間件MQ
拓展:
redis的瓶頸:
redis是單線程的,基於內存操作,cpu不是性能瓶頸 ,瓶頸是內存和網絡帶寬
redis爲什單線程速度快
redis將所有的數據放到內存中的,所以單線程是最高的,因爲多線程cpu上下門切換耗時更多,對於內存系統來說如果沒有上下文切換,單線程是最佳的。cpu切換是在1000-1500納秒之間。
五大類型
Strings (字符串)
Hashes (散列)
Lists (列表)
Sets (集合)
Sorted Sets (有序集合)
三種特殊數據類型
Bitmap
Geo
GEOADD
Redis基本操作
Redis默認有16
個數據庫
vim /redis.conf # 查看配置文件
庫的編號是0-15
默認進入的是0號庫
select 2
切換第二個數據庫
set name jack
創建一個name 值爲 jack 的鍵
type name
查看name鍵的值類型
MSET age1 10 age2 20
同時創建多個值
DBSIZE
查看數據庫的容量
keys *
查看當前數據庫所有的key*
get name
查看name鍵的值
flushdb
清空當前庫
flushall
清空所有庫 (開啓RDB持久化,數據保存在了磁盤上)
exists name
判斷name 鍵是否存在 如果返回1 存在 ,0不存在
move name 2
移動name鍵 到2號庫
del name
刪除name鍵
EXPIRE name 30
設置name鍵的值有效期爲30秒,過期後清空值(1.例如存儲cookie,半個月後過期 2.單點登錄,設置過期時間 3.驗證碼 )
TTL name
查看剩餘時間
過期後值爲空