【Redis】Redis基礎操作 & Pipeline
阿新 • • 發佈:2020-12-21
目錄
Redis
Redis在大量資料讀取儲存時,要注意讀寫分離,寫入使用主庫,讀取使用從庫,緩解主庫壓力
Redis連線
- python
import redis
rc = redis.Redis(host=HOST, port=POST)
- shell
# 使用--raw時,中文輸出不會亂碼
redis-cli --raw -h HOST -p POST
- scala
import redis.clients.jedis.Jedis redisClient = new Jedis(HOST, POST, timeout)
Redis基礎操作
Redis支援五種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合)
命令 | 操作 |
---|---|
DEL key | 刪除key |
EXISTS key | 判斷key是否存在 |
EXISTS key | 判斷key是否存在 |
EXPIRE key seconds | 給key設定過期時間,以秒為單位 |
TTL key | 返回key過期時間 |
- 字串(String)
命令 | 操作 |
---|---|
SET key value | 檢視長度 |
GET key 0 -1 | 檢視內容 |
- 雜湊(Hash)
命令 | 操作 |
---|---|
HGETALL key | 獲取key的所有內容,是一個字典 |
HGET key field | 獲取key中某個欄位的內容,是一個值 |
HMSET key map | 批量儲存key的內容 |
HSET key field | 儲存key中某個欄位的內容 |
- 佇列(List)
命令 | 操作 |
---|---|
LLEN key | 檢視長度 |
LRANGE key 0 -1 | 檢視所有內容 |
LRANGE key 0 -1 | 檢視所有內容 |
LPOP key | 移出佇列第一個元素 |
LPUSH key | 將元素插入佇列頭部 |
RPOP key | 移出佇列最後一個元素 |
RPUSH key | 將元素插入佇列尾部 |
- 集合(Set)
命令 | 操作 |
---|---|
SADD key member | 新增元素 |
SREM key member | 刪除元素 |
smembers key | 檢視所有元素 |
Redis Pipeline
當資料量很大的時候,取redis不斷連結需要耗費大量時間,因此可以使用pipeline批量進行資料操作,減少連結及通訊時間
- python
# python demo
def pythonPipelineDemo:
pipe = rc.pipeline()
for key in keys:
pipe.hgetall(mid)
result = pipe.execute()
#結果為有序列表
for i in range(len(keys)):
print keys[i], result[i]
- scala
// scala demo
import redis.clients.jedis.Jedis
import scala.collection.JavaConverters._
def scalaPipelineDemo() = {
val pipe = redis.pipelined()
keys.foreach(key => {
pipe.hgetAll(key)
})
// pipe.sync() // 若不需要返回結果可使用
val result = pipe.syncAndReturnAll().asScala
result.foreach(res => {
println(res)
})
}