Redis入門教程
- 1. Redis入門
- 1.1 Redis簡介
- 1.2 Redis服務啟動與停止
- 1.2.1 Redis下載
- 1.2.2 服務啟動命令
- 1.2.3 客戶端連接命令
- 1.2.4 修改Redis配置文件
- 2. Redis數據類型
- 2.1 五種常用數據類型介紹
- 2.1.1 字符串操作命令
- 2.1.2 哈希操作命令
- 2.1.3 列表操作命令
- 2.1.4 集合操作命令
- 2.1.5 有序集合操作命令
- 2.1.6 通用命令
- 2.2 各種數據類型特點
1. Redis入門
1.1 Redis簡介
Redis是一個基于內存的key-value結構數據庫。Redis 是互聯網技術領域使用最為廣泛的存儲中間件。
官網:https://redis.io
中文網:https://www.redis.net.cn/
主要特點:
- 基于內存存儲,讀寫性能高
- 適合存儲熱點數據(熱點商品、資訊、新聞)
- 企業應用廣泛
Redis是用C語言開發的一個開源的高性能鍵值對(key-value)數據庫,官方提供的數據是可以達到100000+的QPS(每秒內查詢次數)。它存儲的value類型比較豐富,也被稱為結構化的NoSql數據庫。
NoSql(Not Only SQL),不僅僅是SQL,泛指非關系型數據庫。NoSql數據庫并不是要取代關系型數據庫,而是關系型數據庫的補充。
關系型數據庫(RDBMS):
- Mysql
- Oracle
- DB2
- SQLServer
非關系型數據庫(NoSql):
- Redis
- Mongo db
- MemCached
1.2 Redis服務啟動與停止
1.2.1 Redis下載
Redis安裝包分為windows版和Linux版:
- Windows版下載地址:https://github.com/microsoftarchive/redis/releases
- Linux版下載地址: https://download.redis.io/releases/
在Windows中安裝Redis(項目中使用)
Redis的Windows版屬于綠色軟件,直接解壓即可使用,解壓后目錄結構如下:
1.2.2 服務啟動命令
redis-server.exe redis.windows.conf
Redis服務默認端口號為 6379 ,通過快捷鍵Ctrl + C 即可停止Redis服務。當Redis服務啟動成功后,可通過客戶端進行連接。
1.2.3 客戶端連接命令
redis-cli.exe
通過redis-cli.exe命令默認連接的是本地的redis服務,并且使用默認6379端口。也可以通過指定如下參數連接:
- -h ip地址
- -p 端口號
- -a 密碼(如果需要)
1.2.4 修改Redis配置文件
設置Redis服務密碼,修改redis.windows.conf
requirepass 123456
注意:
- 修改密碼后需要重啟Redis服務才能生效
- Redis配置文件中 # 表示注釋
重啟Redis后,再次連接Redis時,需加上密碼,否則連接失敗。
redis-cli.exe -h localhost -p 6379 -a 123456
此時,-h 和 -p 參數可省略不寫。
2. Redis數據類型
2.1 五種常用數據類型介紹
2.1.1 字符串操作命令
Redis 中字符串類型常用命令:
指令 | 作用 |
---|---|
SET key value | 設置指定key的值 |
GET key | 獲取指定key的值 |
SETEX key | 設置指定key的值,并將 key 的過期時間設為 seconds 秒 |
SETNX key | 只有在 key 不存在時設置 key 的值 |
更多命令可以參考Redis中文網:https://www.redis.net.cn
2.1.2 哈希操作命令
Redis hash 是一個string類型的 field 和 value 的映射表,hash特別適合用于存儲對象,常用命令:
指令 | 作用 |
---|---|
HSET key field value | 將哈希表 key 中的字段 field 的值設為 value |
HGET key field | 獲取存儲在哈希表中指定字段的值 |
HDEL key field | 刪除存儲在哈希表中的指定字段 |
HKEYS key | 獲取哈希表中所有字段 |
HVALS key | 獲取哈希表中所有值 |
2.1.3 列表操作命令
Redis 列表是簡單的字符串列表,按照插入順序排序(個人認為相當于棧),常用命令:
指令 | 作用 |
---|---|
LPUSH key value1 [value2] | 將一個或多個值插入到列表頭部 |
LRANGE key start stop | 獲取列表指定范圍內的元素 |
RPOP key | 移除并獲取列表最后一個元素 |
LLEN key | 獲取列表長度 |
BRPOP key1 [key2] timeout | 移出并獲取列表的最后一個元素, 如果列表沒有元素會阻塞列表直到等待超 時或發現可彈出元素為止 |
2.1.4 集合操作命令
Redis set 是string類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現重復的數據,常用命令:
指令 | 作用 |
---|---|
SADD key memeber1 [member2] | 向集合添加一個或多個成員 |
SMEMBERS key | 返回集合中的所有成員 |
SCARD key | 獲取集合的成員數 |
SINTER key1 [key2] | 返回給定所有集合的交集 |
SUNION key1 [key2] | 返回所有給定集合的并集 |
SREM key member1 [member2] | 移除集合中一個或多個成員 |
2.1.5 有序集合操作命令
Redis有序集合是string類型元素的集合,且不允許有重復成員。每個元素都會關聯一個double類型的分數。常用命令:
指令 | 作用 |
---|---|
ZADD key score1 member1 [score2 member2] | 向有序集合添加一個或多個成員 |
ZRANGE key start stop [WITHSCORES] | 通過索引區間返回有序集合中指定區間內的成員 |
ZINCRBY key increment member | 有序集合中對指定成員的分數加上增量 increment |
ZREM key member [member …] | 移除有序集合中的一個或多個成員 |
2.1.6 通用命令
Redis的通用命令是不分數據類型的,都可以使用的命令:
指令 | 作用 |
---|---|
KEYS pattern | 查找所有符合給定模式( pattern)的 key |
EXISTS key | 檢查給定 key 是否存在 |
TYPE key | 返回 key 所儲存的值的類型 |
DEL key | 該命令用于在 key 存在是刪除 key |
2.2 各種數據類型特點
解釋說明:
- 字符串(string):普通字符串,Redis中最簡單的數據類型
- 哈希(hash):也叫散列,類似于Java中的HashMap結構
- 列表(list):按照插入順序排序,可以有重復元素,類似于Java中的LinkedList
- 集合(set):無序集合,沒有重復元素,類似于Java中的HashSet
- 有序集合(sorted set/zset):集合中每個元素關聯一個分數(score),根據分數升序排序,沒有重復元素