Python操作Redis

昨天廊勃,我們討論了python如何連接redis。今天我們要學(xué)習(xí)如何用python操作redis的數(shù)據(jù)经窖。

這里坡垫,再補(bǔ)充一下。redis是key-value形式的數(shù)據(jù)庫画侣「鹋埃可以存儲(chǔ)多種格式的數(shù)據(jù)。

今天棉钧,我們就是嘗試下屿脐,這些常用的api涕蚤。

1.設(shè)置數(shù)據(jù):

r = redis.Redis(host='127.0.0.1', port=6379)

#若是key存在,就修改的诵,不存在万栅,就添加

r.set('zcx', '123999')

#time:是指緩存過期時(shí)間,單位秒

r.setex(key,value, time)

#time:是指緩存過期時(shí)間西疤,單位秒

r.setex(key,value, time)

#time:是指緩存過期時(shí)間烦粒,單位毫秒

r.psetex(key,value, time)

這兩個(gè),都是批量設(shè)置

r.mset(zcx='123', zcx1='456')

r.mget({"zcx": '888', "zcx1": '999'})

2.獲取數(shù)據(jù)

get(name)

批量獲却蕖:

r.mget("zcx", "zcx1")

li = ["zcx", "zcx1"]

r.mget(li)

3.獲取原來的值并設(shè)置新的值:注意get 和set拼起來的

getset(name, value)

4.按數(shù)據(jù)內(nèi)容的長度取值

getrange(key, start, end)

print(r.getrange('zcx', 0, 1))

5.根據(jù)key扰她,在對應(yīng)的值的指定位置插入值

setrange(key, offset, value)

6.對2進(jìn)制進(jìn)行位操作

setbit(key, offset, value)

7.獲取2進(jìn)制某一位的值

getbit(name, offset)

8.獲取2進(jìn)制某一段的值

bitcount(key, start=None, end=None)

9.返回對應(yīng)數(shù)據(jù)的長度

strlen(key)

10.對某個(gè)數(shù)進(jìn)行加法運(yùn)算

incr(self, key, amount=1)

r.incr('zcx',1)

print(r.get('zcx'))

r.incr('zcx',5)

print(r.get('zcx'))

輸出:

b'124'

b'129'

按后面的小數(shù)進(jìn)行增長

incrbyfloat(self, name, amount=1.0)

與incr的功能相反

decr(self, key, amount=1)

11.為name追加內(nèi)容

append(key, value)

12.存取字典

r.hset("zcx", "zcx1", "8888")

print(r.hget("zcx", "zcx1"))

#取所有的字典

print(r.hgetall("zcx"))

輸出:

b'8888'

{b'zcx1': b'8888'}

13.批量存取字典

dic = {"zcx": "111111", "zcx1": "2222222"}

r.hmset("my", dic)

print(r.hget("my", "zcx"))

print(r.hgetall("my"))

test=["zcx","zcx1"]

print(r.hmget("my",test))

print(r.hmget("my","zcx","zcx1"))

14.獲取字典的屬性和對應(yīng)值:長度,個(gè)數(shù)

dic = {"zcx": "1111", "zcx1": "2222"}

r.hmset("my", dic)

#獲取長度

print(r.hlen("my"))

#獲取所有key

print(r.hkeys("my"))

#獲取所有值

print(r.hvals("my"))

15.判斷是否存在

print(r.hexists('my', 'zcx'))

輸出:

True

16.刪除字典的key

hdel('my','zcx')

17.列表操作

lpush(key,val)

#每個(gè)新的元素都添加到列表的最右邊

rpush(key,val)

#在key對應(yīng)的list中添加元素芭碍,只有key已經(jīng)存在時(shí)徒役,值添加到列表的最左/右邊

lpushx(key,value)

rpushx(key,value)

llen(key)#求長度

r.linsert("my","BEFORE","55555","66666")#在前后插入值

r.lset(key, index, value)#對某個(gè)位置的數(shù)據(jù)重新復(fù)制

r.lrem(key, value,position)#position刪除指定位置的值。position>0從左往右數(shù)位置窖壕,否則從右向左

lpop(key)#移除元素

lindex(key, index)#根據(jù)索引取元素

lrange(key, start, end)#根據(jù)索引取范圍數(shù)據(jù)

ltrim(key, start, end)#移除列表內(nèi)沒有在該索引之內(nèi)的值

rpoplpush(src, target)#合并列表忧勿。從src取出最右邊的元素,同時(shí)將其添加至target的最左邊

blpop(key, timeout)#移除數(shù)據(jù)

18.Set集合操作

Set集合就是不允許重復(fù)元素的列表

sadd(key,value)#設(shè)置值

smembers(key)#獲取值

scard(key)#獲取長度

sdiff(keys, *args)#取差

sdiffstore(target, keys, *args)#把sdiff獲取的值加入到target中

sinter(key, *args)#取并

sinterstore(target, keys, *args)#獲取多個(gè)key對應(yīng)集合的并集瞻讽,在加入到target中

sismember(key, value)#檢查元素

smove(src, target, value)#把某個(gè)元素從一個(gè)集合中移動(dòng)到另外一個(gè)集合

spop(key)#移除

srandmember(key, num)#隨機(jī)取值鸳吸,num是長度

srem(key, values)#刪除key中的某些值

sunion(keys, *args)#獲取多個(gè)keys對應(yīng)的集合的并集

sunionstore(target,keys, *args)#sunion的結(jié)果存入target

zadd(key, *args, **kwargs)#有序集合

zcard(key)#有序集合的元素

zcount(key, min, max)#有序集合的元素在min和max范圍中的數(shù)

zincrby(key, value, amount)

# 按照索引范圍獲取key對應(yīng)的有序集合的元素

result=r.zrange("my",0,1,desc=False,withscores=True,score_cast_func=int)

print(result

'''參數(shù):

key

start 有序集合索引起始位置

end 有序集合索引結(jié)束位置

desc 排序規(guī)則,默認(rèn)按照分?jǐn)?shù)從小到大排序

withscores 是否獲取元素的分?jǐn)?shù)速勇,默認(rèn)只獲取元素的值

score_cast_func 對分?jǐn)?shù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換的函數(shù)'''

zrevrange(key, start, end, withscores=False, score_cast_func=float)#同zrange晌砾,集合是從大到小排序

zrank(key, value)、zrevrank(key, value)#獲取元素所在位置

zscore(key, value)

zrem(key, val)#刪除key對應(yīng)的有序集合中值是val成員

zremrangebyrank(key,min, max)#根據(jù)范圍刪除

zremrangebyscore(key, min, max)

zinterstore(target, keys, aggregate=None)#合并集合烦磁。進(jìn)行笛卡兒積運(yùn)算

zunionstore(target, keys, aggregate=None)#合并集合放入target

delete(*names)#刪除

exists(name)

keys(pattern='*')#模式匹配

expire(key,time)#設(shè)置超期時(shí)間

rename(a, b)

move(key, db))#將可以移動(dòng)到另一個(gè)db下

randomkey()#生成隨機(jī)key

type(key)#獲取可以對應(yīng)的類型

以上就是python操作redis的部分API养匈。其實(shí),在實(shí)際應(yīng)用中个初,能用到三分之一就不錯(cuò)了乖寒。但是猴蹂,一定要了解提供了那些API院溺,將來在用的時(shí)候,才知道從哪方面去思考磅轻。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末珍逸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子聋溜,更是在濱河造成了極大的恐慌谆膳,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撮躁,死亡現(xiàn)場離奇詭異漱病,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門杨帽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漓穿,“玉大人,你說我怎么就攤上這事注盈』挝#” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵老客,是天一觀的道長僚饭。 經(jīng)常有香客問我,道長胧砰,這世上最難降的妖魔是什么鳍鸵? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮朴则,結(jié)果婚禮上权纤,老公的妹妹穿的比我還像新娘。我一直安慰自己乌妒,他們只是感情好汹想,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著撤蚊,像睡著了一般古掏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上侦啸,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天槽唾,我揣著相機(jī)與錄音,去河邊找鬼光涂。 笑死庞萍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的忘闻。 我是一名探鬼主播钝计,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼齐佳!你這毒婦竟也來了私恬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤炼吴,失蹤者是張志新(化名)和其女友劉穎本鸣,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體硅蹦,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荣德,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年闷煤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涮瞻。...
    茶點(diǎn)故事閱讀 40,561評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡曹傀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饲宛,到底是詐尸還是另有隱情皆愉,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布艇抠,位于F島的核電站幕庐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏家淤。R本人自食惡果不足惜异剥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望絮重。 院中可真熱鬧冤寿,春花似錦、人聲如沸青伤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狠角。三九已至号杠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丰歌,已是汗流浹背姨蟋。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留立帖,地道東北人眼溶。 一個(gè)月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像晓勇,于是被迫代替她去往敵國和親堂飞。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容