使用python操作redis(管道)

2021-10-05 12:59:15 字數 2990 閱讀 7363

一、redis連線

redis提供兩個類redis和strictredis用於實現redis的命令,strictredis用於實現大部分官方的命令,並使用官方的語法和命令,redis是strictredis的子類,用於向後相容舊版本的redis-py。

redis連線例項是執行緒安全的,可以直接將redis連線例項設定為乙個全域性變數,直接使用。如果需要另乙個redis例項(or redis資料庫)時,就需要重新建立redis連線例項來獲取乙個新的連線。

安裝redis

pip install redis
連線redis,加上decode_responses=true,寫入的鍵值對中的value為str型別,不加這個引數寫入的則為位元組型別。

二、連線池連線

redis-py使用connection pool來管理對乙個redis server的所有連線,避免每次建立、釋放連線的開銷。預設,每個redis例項都會維護乙個自己的連線池。可以直接建立乙個連線池,然後作為引數redis,這樣就可以實現多個redis例項共享乙個連線池

連線池:redis_pool.py

import redis

from redis_pool import pool

conn = redis.redis(connection_pool=pool)

conn.

set(

'name'

,'linwow'

)print

(conn.get(

'name'

))

三、redis-py 操作redis

python操作redis的命令和命令列幾乎一致,除了del,因為和關鍵字重疊,所以用delete

1、字串型別操作:

set----鍵key

con.set(『key』,『values』)

get—獲取數值

con.get(『com』)

delete—刪除

con.delete(『keys』)

2、list型別:

rpush 、lpush----新增資料

con.rpush(『keys』,『values』)

con.lpush(『keys』,『values』)

lrange—檢視資料

con.lrange(『list』,0,11)

lset—修改資料

con.lset(『list_f』,1,『fyn』)—返回布林值

rpop ---- 隨機刪除乙個資料

con.rpop(『keys』)

lrem ---- 指定刪除乙個資料時

con.lrem(『list_f』,0,『okl』)

3、hash型別

hmget — 新增多條資料,也可插入單條資料

以字典的形式插入

con.hmste(『keys』,)#插入結果返回布林值

hget , hgetall , hvals,hkeys檢視資料

con.hget(『ok』,『name』)

con.hgetall(『ok』)#結果返回字典

con.hvals(『ok』)#獲取所有的鍵值

con.hkeys(『ok』)#獲取所有的鍵

hdel 、 del----刪除某個字段,刪除整個hash

con.hdel(『ok』,age)#指定刪除某個字段 ,成功的話返回1,否則返回0

con.del(『ok』)#刪除整個hash

4、set

sadd—新增資料

con.sadd(『mk』,『oi』.『hwelo』)

smembers ---- 檢視所有資料

con.smembers(『mk』)

spop—隨機刪除乙個元素

con.spop(『con.spop(『mk』)』)

srem— 指定刪除某個元素

con.srem(『mk』,『oi』)

5、sorted set

zadd—新增資料

con.zadd(『set_f』,)

zrange ---- 查詢資料

con.zrange(『set_f』,0,11)

zrem —指定刪除某個元素

con.zrem(『set_f』,『age』)

四、redis-py管道操作 piplines

管道是redis的子類,它支援在乙個請求中款衝多個命令到伺服器

管道使redis的讀寫速度更加的快速。秒級取值1000+的資料。

並且使用pipline實現一次請求指定多個命令,並且預設情況下一次pipline 是原子性操作。

'''

'''#1、建立乙個管道

pipe = con.pipeline(

)#緩衝多個命令

pipe.keys(

'*')

pipe.

set(

'name'

,'mkl'

)#執行命令

res = pipe.execute(

)#返回列表

print

(res[0]

)print

(res[1]

)

管道的命令可以寫在一起,如:

pipe.

set(

'hello'

,'redis'

).sadd(

'faz'

,'baz'

).incr(

'num'

).execute(

)print

(r.get(

"name"))

print

(r.get(

"role"))

print

(r.get(

"num"

))

1 9 使用python來操作redis

1 redis連線 redis連線例項是執行緒安全的,可以直接將redis連線例項設定為乙個全域性變數,直接使用。安裝 pip install redis import redis r redis.redis host licalhost port 6379 decode responses tru...

使用Python操作Redis資料庫

使用python操作redis,需要先安裝redis模組,請使用以下命令安裝 pip3 install redis或python3 m pip install redis redis庫提供了兩個類redis和strictredis來實現redis的命令操作。strictredis用於實現大部分官方的...

Redis 使用C 程式操作Redis

一 安裝操作所需nuget包 二 寫入 redis只是按key值設定過期時間,不是對value內部的某些值設過期 2.1 string型別 向redis寫入 鍵值 值 過期日期 public static void setstring string key,string value,datetime...