連接 Redis
import redisc
連接方式:redis提供了2個方法
1:StrictRedis:實現大部分官方的命令
2:Redis:是StrictRedis的子類,用于向后兼容舊版的redis。
官方推薦使用StrictRedis方法。
舉例(普通連接):
import redis#decode_responses=True 自動解碼r = redis.Redis(host='127.0.0.1',port=6379,password='123456',db=0,decode_responses=True) #默認數據庫為0r = redis.StrictRedis(host='10.10.2.14',port=6379,password='123456',decode_responses=True)連接池:connection pool
管理對一個redis server的所有連接,避免每次建立,釋放連接的開銷。默認,每個redis實例都會維護一個自己的連接池,可以直接建立一個連接池,作為參數傳給redis,這樣可以實現多個redis實例共享一個連接池。
舉例(連接池):
pool = redis.ConnectionPool(host='127.0.0.1',port=6379,password='123456',decode_responses=True)r = redis.Redis(connection_pool=pool)
一 STRING 字符串的操作
1. r.set 設置值
#在Redis中設置值,默認不存在則創建,存在則修改r.set('name', 'zhangsan')'''參數: set(name, value, ex=None, px=None, nx=False, xx=False) ex,過期時間(秒) px,過期時間(毫秒) nx,如果設置為True,則只有name不存在時,當前set操作才執行,同setnx(name, value) xx,如果設置為True,則只有name存在時,當前set操作才執行'''
r.get('name')
3. mset 批量設置值
#批量設置值r.mset(name1='zhangsan', name2='lisi')#或r.mget({"name1":'zhangsan', "name2":'lisi'})
4. mget(keys, *args) 批量獲取
#批量獲取print(r.mget("name1","name2"))#或li=["name1","name2"]print(r.mget(li))
5. getset 設置新值,打印原值
#設置新值,打印原值getset(name, value) print(r.getset("name1","wangwu")) #輸出:zhangsanprint(r.get("name1")) #輸出:wangwu
6. getrange 根據字節獲取子序列
#根據字節獲取子序列getrange(key, start, end) r.set("name","zhangsan")print(r.getrange("name",0,3))#輸出:zhan
7. setrange 修改字符串內容,從指定字符串索引開始向后替換,如果新值太長時,則向后添加
#修改字符串內容,從指定字符串索引開始向后替換,如果新值太長時,則向后添加setrange(name, offset, value) r.set("name","zhangsan")r.setrange("name",1,"z")print(r.get("name")) #輸出:zzangsanr.setrange("name",6,"zzzzzzz")print(r.get("name")) #輸出:zzangszzzzzzz
8. strlen(name) 返回name對應值的字節長度
#返回name對應值的字節長度(一個漢字3個字節)r.set("name","zhangsan")print(r.strlen("name")) #輸出:8
新聞熱點
疑難解答