婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python訪問Redis的詳細操作

Python訪問Redis的詳細操作

熱門標簽:電銷機器人錄音要學習什么 如何地圖標注公司 長春極信防封電銷卡批發 外賣地址有什么地圖標注 預覽式外呼系統 煙臺電話外呼營銷系統 銀川電話機器人電話 企業彩鈴地圖標注 上海正規的外呼系統最新報價

1.連接

測試連接是否成功:

import redis
r = redis.Redis(host='192.168.136.102', port=6379, db=0,decode_responses=True)
r.set('foo', 'bar')
print(r.get('foo'))
del r

redis 取出的結果默認是字節,我們可以設定 decode_responses=True 改成字符串。

redis 提供兩個類 Redis 和 StrictRedis, StrictRedis 用于實現大部分官方的命令,Redis 是 StrictRedis 的子類,用于向后兼用舊版本。

import redis   # 導入redis 模塊
r = redis.Redis(host='192.168.136.102', port=6379, decode_responses=True)
r.set('name', 'runoob')  # 設置 name 對應的值
print(r['name'])
print(r.get('name'))  # 取出鍵 name 對應的值
print(type(r.get('name')))  # 查看類型
del r

連接池

redis-py 使用 connection pool 來管理對一個 redis server 的所有連接,避免每次建立、釋放連接的開銷。
默認,每個Redis實例都會維護一個自己的連接池??梢灾苯咏⒁粋€連接池,然后作為參數 Redis,這樣就可以實現多個 Redis 實例共享一個連接池。

import redis    # 導入redis 模塊
pool = redis.ConnectionPool(host='192.168.136.102', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set('name', 'runoob')  # 設置 name 對應的值
print(r.get('name'))  # 取出鍵 name 對應的值

對比

2.String字符串

String使用場景:
1、用redis當緩存層來加速讀寫性能降低后端的壓力
2、計數器
3、時間內限制請求次數

1.String set 設置單個鍵值
set(name, value, ex=None, px=None, nx=False, xx=False)
ex:過期時間(秒),時間到了后redis會自動刪除
px:過期時間(毫秒),時間到了后redis會自動刪除。ex、px二選一即可
nx:如果設置為True,則只有name不存在時,當前set操作才執行
xx:如果設置為True,則只有name存在時,當前set操作才執行

r.set('name', 'zhangsan',ex=3)  
r.set('name', 'lisi',nx=True)  #如果設置為True,則只有name不存在時,當前set操作才執行
r.set('name', 'wangwu',xx=True)  #如果設置為True,則只有name存在時,當前set操作才執行

2.String get 獲取單個值

v = r.get('name')
print(v)

3.String mset 設置多個鍵值
mset(*args, **kwargs)

name_dict = {
    'name_1' : 'zhangsan',
    'name_2' : 'lisi'
}
r.mset(name_dict)

4.String mget 獲取多個值

mget(keys, *args)
r.mget('name_1', 'name_2')

5.String setrange 根據索引修改某個鍵的value值
setrange(name, offset, value)
返回值為:修改后的字符串長度
name:鍵,所給不存在時自動添加
offset:偏移量,以0開始
value:修改的字符或字符串,字符串時以offset向后順延

length = r.setrange('name_2', 1, 'zhihu')
print(length)

6.String getrange 根據索引獲取某個鍵的部分value值
若所給的鍵不存在時,返回空值 b''
getrange(key, start, end)

v = r.getrange('name_1', 0, 2)

7.String strlen 獲取value的長度
strlen(name)
所給的鍵不存在時,返回值為0

length = r.strlen('name_2')

8.String append value后面追加
append(key, value)
若所給的鍵不存在,則設置新值,返回值為修改后的字符串的長度

length = r.append('name_1', '666')

3.列表

1.lpush(key , value) 將一個或多個值 value 插入到列表 key 的表頭

 r.lpush('list', 'a', 'b', 'c', 'd')

2.rpush(key , value) 將一個或多個值 value 插入到列表 key 的表尾

r.rpush('rlist', 'a', 'b', 'c', 'd')

3.llen key 返回列表 key 的長度

 r.llen('list')

4.lrem key count value 根據參數 count 的值,移除列表中與參數 value 相等的元素

r.lrem('list',2, 'b')

4.集合

1.sadd(name,values) 向對應的集合中添加元素

r.sadd("set1", 33, 44, 55, 66) 

2.scard(name)
獲取name對應的集合中元素個數

r.scard('set1')

3.srandmember key [count] 返回集合中的 1 或 count 個隨機元素

r.srandmember("set1") 

4.spop key 移除并返回集合中的一個隨機元素獲取name對應的集合中元素個數

r.spop('set1')

5.smove source destination member 將 member 元素從 source 集合移動到 destination 集合

  r.smove('set1', 'set2', 66)

5.哈希

1.hmset key field value [field value …]同時將多個 field-value (域-值)對設置到哈希表 key 中

r.hmset('zhangsan',{'name':'zhangsan','age':20,'tel':123456})

2.Hash hmget 獲取哈希中多個鍵值對

hmget(name, keys, *args)

返回值:值的列表 list 形如: [‘1', ‘123'] class ‘list'>

r.hmget('zhangsan', ['sex', 'tel'])

3.Hash hget 獲取指定key的值
hget(name, key)

r.hget('zhangsan', 'tel')

4.Hash hgetall 獲取哈希中所有的鍵值對
hgetall(name)
返回值:dict類型

r.hgetall('zhangsan')

6.有序集合

1.Zset zadd 有序集合中添加元素
zadd(name, *args, **kwargs)
添加元素時需指定元素的分數
返回值:返回添加的個數

r.zadd('myzset', {'a': 3, 'b': 4,'c':5})
r.zadd('myzset', 'a', 3, 'b', 4,'c',5})  #不同版本

2.Zset zcard 返回有序集合中元素個數
zcard(name)

v = r.zcard('myzset')

3.Zset zscore 返回有序集合中指定某個值的分數
zscore(name, value)
返回值:float 類型的分數;形如: -5.0 class ‘float'>

v = r.zscore('myzset', ‘a')

4.Zset zincrby 增加有序集合中某個值的分數
zincrby(name, value, amount=1)
value:若存在,則增加其amount分數;若不存在,則增加新值以及對應的分數
amount:增加的值,可以為負數
返回值:增加后的分數 float類型 ;

v = r.zincrby('myzset',1,'a')

5.Zset zrevrange 返回有序集合分數排序的一段數據
zrevrange(name, start, end, withscores=False, score_cast_func=float)
name:redis的name
start:有序集合索引起始位置(非分數)
end:有序集合索引結束位置(非分數)
withscores:是否獲取元素的分數,默認只獲取元素的值
score_cast_func:對分數進行數據轉換的函數
返回值:list類型

r.zadd('myzset1', {'a': 4, 'b': 2,'c':3,'d':6,'e':1,'f':9})
def double(num):
    return float(num)*float(num)
print(r.zrevrange('myzset1',0,3,withscores=True))
print(r.zrevrange('myzset1',0,3,withscores=True,score_cast_func=double))

以上就是Python訪問Redis的詳細內容,更多關于Python訪問Redis的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Python操作redis實例小結【String、Hash、List、Set等】
  • python 通過SSHTunnelForwarder隧道連接redis的方法
  • Python獲取Redis所有Key以及內容的方法
  • python redis 刪除key腳本的實例
  • python使用pipeline批量讀寫redis的方法
  • Python連接Redis的基本配置方法
  • python中redis查看剩余過期時間及用正則通配符批量刪除key的方法

標簽:盤錦 宜昌 佳木斯 上饒 湖北 潮州 西寧 珠海

巨人網絡通訊聲明:本文標題《Python訪問Redis的詳細操作》,本文關鍵詞  Python,訪問,Redis,的,詳細,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python訪問Redis的詳細操作》相關的同類信息!
  • 本頁收集關于Python訪問Redis的詳細操作的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 仙游县| 山东| 温州市| 永川市| 大化| 湛江市| 林周县| 楚雄市| 通州市| 高邮市| 临西县| 宿迁市| 那坡县| 民勤县| 米易县| 环江| 台中县| 南皮县| 景德镇市| 屯昌县| 甘肃省| 福建省| 黔南| 弥勒县| 灵宝市| 泽库县| 宁河县| 靖边县| 深泽县| 乐陵市| 株洲市| 吕梁市| 屯门区| 肇源县| 农安县| 石棉县| 周口市| 青海省| 灌阳县| 白山市| 巫山县|