中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis操作

發布時間:2020-07-20 11:27:14 來源:網絡 閱讀:194 作者:leiwenbin627 欄目:編程語言

pycharm安裝redis
D:\project\s14  pip install redis

setting-->project interpreter---> +
#/usr/bin/env python
#!-*-coding:utf-8-*-
import redis,time
#單連
r = redis.Redis(host='192.168.74.20', port=6379,db=6)

#連接池
pool = redis.ConnectionPool(host='192.168.74.20', port=6379,db=6)
r = redis.Redis(
connection_pool=pool)

string
字符操作
r.set(
"name","alex")
print(r.get('name'))
r.setnx(
"name1","jack")#name1 不存在時有效 not exist
print(r.get(('name1')))
r.psetex(
"name",1000,"Lucy") #name已經存在,有效期1000ms
print(r.get("name"))
r.mset({
"name2":'lili','age':'88'})#批量設置 以字典的形式
print(r.mget("name2",'age',"name"))#批量獲取
print(r.getset('name','kobe_brant'))#設置新值并返回原來的值
print(r.get('name'))
print(r.getrange('name',0,3)) #獲取name的第03個字符
r.setrange('name2',0,"Alex")#從第0位開始,逐步替換成kathy
print(r.get("name2"))
print(ord("a"))
r.setbit(
"name2",6,1)
print(r.get("name2"))
print(r.bitcount("name2")) #names2的值轉換成二進制有多少個1
print(r.strlen("name"))# name的值的長度
r.set('k1','20')
r.incr(
'k1',amount=10) #10位自增
print(r.get('k1'))
r.set(
"k2","1.5")
r.incrbyfloat(
"k2",amount=2.5) #浮點數 2.5自增
print(r.get("k2"))
print(r.decr("k1",amount=5))# 5自減
r.append("k1","00")#k1的值追加00
print(r.get("k1"))

hash
哈希操作
r.hset(
"info","name","mary")#info的哈希數據 hash key value
print(r.hget("info","name")) #info的哈希 name的值
r.hmset("info",{"address":"shenzhen","number":"12556"})#批量設置infohash
print(r.hmget("info","name","address","number"))#批量獲取infohash
print(r.hgetall("info"))#獲取info的所有值
print(r.hlen("info"))#查看info的長度
print(r.hkeys('info'))#查看infokey
print(r.hvals('info'))#查看infovalue
print(r.hexists('info','name'))#判斷info是否存在key
r.hdel('info','address')#刪除key
print(r.hgetall('info'))
r.hincrby(
'info','number',amount=1000) #key對應的value自增1000
print(r.hget('info','number'))
r.hset(
'info2','num','1.6')
r.hincrbyfloat(
'info2','num',amount=5.5)#浮點數自增5.5
print(r.hgetall('info2'))
print(r.hscan('info',cursor=0,match='n*',count=2))#光標第0個開始,匹配n開頭的key找出2value

list列表操作
r.lpush(
'addr','shenzhen','nanchang','ganzhou','guangzhou') 設定addr列表并傳入數據
print(r.lrange('addr',0,-1)) #獲取列表addr 所有數據
r.lpushx('address','xingguo')#列表addr存在時,xingguo添加到最左邊,如果不存在也不會報錯
print(r.lrange('addr',0,-1))
r.rpush(
'numbers','1','2','3','4','5')
r.rpushx(
'numberss','new_1')#列表numbers存在時,new_1添加到最右邊
print(r.lrange('numbers',0,-1))
print(r.llen('numbers'))#列表的長度
r.linsert('addr','after','xingguo','gulong')#xinnguo后面插入gulong
r.lset('numbers',10,'6')#10個值重新賦值為6
print(r.lrange('numbers',0,-1))
r.lrem(
'numbers','1',4)#從第1位開始,刪除后面的4
print(r.lrange('numbers',0,-1))
print(r.lpop('numbers'))#列表的左側刪除一個值,刪除的值返回屏幕
print(r.lrange('numbers',0,-1))
print(r.rpop('numbers'))#列表的右側刪除一個值并返回屏幕
print(r.lrange('numbers',0,-1))
print(r.lindex('numbers','2'))#獲取numbers的第2個值
r.ltrim('numbers',2,4)#保留24位的值,其余的刪除
print(r.lrange('numbers',0,-1))
r.rpoplpush(
'numbers','nums')#numbers的最右側的值移到nums的最左側
print(r.lrange('nums',0,-1))
r.blpop(
'nums',timeout=10)#從左邊往右依次刪除
print(r.lrange('nums',0,-1))
r.brpop(
'nums',timeout=10)#從右往左依次刪 超時時間為10s
print(r.lrange('nums',0,-1))
r.brpoplpush(
'numbers','nums',timeout=10)#numbers的最右側移到nums最左側,numbers移完了就卡主10s,有數據進numbers就釋放在移數據
print(r.lrange('numbers',0,-1))
print(r.lrange('nums',0,-1))

set
集合操作
r.sadd(
"jihe","1","2","2","3")
print(r.scard("jihe"))#查找jihe有多少成員
r.sadd("jihe2",'1','2','6')
print(r.smembers("jihe")) #查找jihe的成員
print(r.sdiff("jihe","jihe2")) #jihe不在jihe2
r.sdiffstore('new_1','jihe','jihe2')#jihe不在jihe2,并且把結果保存到new_1集合里
print(r.smembers("new_1"))
print(r.sinter('jihe','jihe2')) #jihe jihe2的交集
r.sinterstore('new_2','jihe','jihe2')#jihe jihe2交集保存到new_2
print(r.smembers('new_2'))
print(r.sismember('jihe','1')) #判斷1是不是jihe的成員
r.smove('jihe2','jihe','6')#jihe2的成員 6 移到jihe
print(r.smembers('jihe'))
print(r.spop(r.spop("jihe"))) #從集合 jihe隨機移除一個成員
print(r.smembers('jihe'))
print(r.srandmember('jihe','2')) #jihe隨機獲取2個成員
r.srem('jihe','1') #刪除jihe的成員1
print(r.smembers('jihe'))
print(r.sunion('jihe','jihe2'))#jihe jihe2的并集
r.sunionstore('new_3','jihe','jihe2')#jihe jihe2的并集保存到new_3
print(r.smembers('new_3'))
print(r.sscan('new_3',0,match=2,count=1))#new_3集合里,從光標0開始,匹配值是2的,只找1

z有序集合操作
r.zadd(
'shuxue','98','lei','56','alex','85','jack') #shuxue有序集合 98權重 成員lei
print(r.zcard("shuxue"))#查看有多少個成員
print(r.zcount("shuxue",60,90)) #查看權重6090有幾個成員
r.zincrby("shuxue",1,"lilei") #shuxue集合 lilei成員的權重自增1
print(r.zrange("shuxue",0,-1,withscores=True))#遍歷 shuxue 成員 列出權重
print(r.zrank("shuxue","lilei")) #查看lilei的排名 權重小到大排 默認0開始
r.zadd("shuxue",10,"kk") #添加kk 權重10
r.zrem("shuxue","kk") #刪除kk
r.zremrangebyrank("shuxue",0,1) #刪除排名第01位的成員
r.zremrangebyscore("shuxue",0,11) #刪除第011位權重的成員
print(r.zscore("shuxue","lilei")) #獲取lilei的分數
r.zinterstore("score_1","2","yuwen","shuxue")#指定2個有序集合,yuwenshuxue集合,相加保存到 socre_a集合
r.zunionstore("score_b",2,"yuwen","shuxue")#并集相加
print(r.zscan("score_1",0,match="j*")) #找出score_1集合中j開頭的成員

其他操作
r.delete(
"0") #刪除任意數據類型
print(r.exists("info"))#1為存在
print(r.keys(pattern="in*")) #獲取in開頭的name
r.expire("k2",2) #k2數據2秒之后過期刪除
print(r.keys())
r.rename(
"info2","info_2")#將數據info2改名為info_2
r.move("city",1)#將數據city移到db 1
print(r.randomkey())#隨機獲取一個數據的 name
print(r.type("names")) #判斷names的數據類型
print(r.scan(1,match="n*",count=2))#光標從1開始 匹配n后面有字符的數據名字,找出2個這樣的數據名字

pipline實現一次請求指定多個命令實例
pool=redis.ConnectionPool(
host='192.168.74.20',port=6379,db=5)
r=redis.Redis(
connection_pool=pool)

pipe=r.pipeline(
transaction=True)
pipe.set(
'name','lwb')
time.sleep(
10)
pipe.set(
'age','19')
pipe.execute()
#管道執行,只有到了這一步才會設置nameage,而不會在sleep之前先設置name

redis訂閱發布實例
redishelper.py
import redis
class Redishelper():
   
def __init__(self):
       
self.__conn=redis.Redis(host='192.168.74.20',db=0)
       
self.chan_sub='fm105.8'
       
self.chan_pub='fm105.8'
   
def public(self,msg):
       
self.__conn.publish(self.chan_pub,msg)#調用redispublish方法
       
return True
    def
subscribe(self):
        pub=
self.__conn.pubsub()# redis的訂閱方法pubsub 開始訂閱
       
pub.subscribe(self.chan_pub)#訂閱頻道
       
pub.parse_response()#準備接收 再后來調用這句話才是接收
       
return pub

訂閱subscriber
#!/usr/bin/env python
#-*- coding:utf-8-*-
from redishelper import Redishelper
obj=Redishelper()
#實例化一個redis連接
redis_sub=obj.subscribe()#調用redis訂閱方法,也就是打印方法
while True:
    msg=redis_sub.parse_response()
#收到就打印,收不到就卡主
   
print(msg[0].decode(),msg[1].decode(),msg[2].decode())

發布publisher
#!/usr/bin/env python
#!-*-coding:utf-8-*-
from redishelper import Redishelper
obj=Redishelper()
#實例化一個redis連接
obj.public('你好')#調用redispublish功能 命令:publish 頻道 消息

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临猗县| 渭南市| 民丰县| 濮阳县| 金阳县| 德安县| 通榆县| 双辽市| 友谊县| 永寿县| 颍上县| 天气| 定陶县| 兴化市| 梁河县| 黎川县| 黄大仙区| 内江市| 商洛市| 赤峰市| 上虞市| 博兴县| 桃江县| 宜昌市| 临清市| 乳山市| 奉贤区| 满洲里市| 长岭县| 汾阳市| 张掖市| 和政县| 遂宁市| 霍山县| 同心县| 麻城市| 徐水县| 东乡| 定远县| 边坝县| 南平市|