day6-Python學習筆記(十三)redis資料庫

來源:互聯網
上載者:User

標籤:get   update   delete   判斷   檔案   匯入   學習筆記   自己   word   

import redis
r = redis.Redis(host=‘211.149.218.16‘,port=6379,password=‘123456‘,db=2)#連上redis
print(r.get(‘hahahsfdfsdf‘))
#r.set(‘nhy_session‘,‘201801211505‘) #set資料
# print(r.get(‘馬佩佩‘).decode()) #redis裡面取出來的資料都是bytes類型的,所以要用.decode方法轉成字串
# r.delete(‘馬佩佩‘)#刪除一個
#r.setex(‘nhy‘,‘hahah‘,20) #可以指定key的失效時間,單位是秒‘

# set get delete setex 都是針對string類型的 k - v

#hash類型
# r.hset(‘sessions‘,‘nhy‘,‘123456‘) #插入資料
# r.hset(‘sessions‘,‘ybq‘,‘1234562‘)
# r.hset(‘sessions‘,‘xsr‘,‘1234561‘)
#print(r.hget(‘sessions‘,‘xsr‘)) #擷取資料
# redis_data = r.hgetall(‘sessions‘) #擷取到hash類型裡面所有的資料
# all_data = {}
# for k,v in redis_data.items(): #把hash類型裡面所有的資料轉成正常的字典
# k = k.decode()
# v = v.decode()
# all_data[k]=v
#hash類型沒有到期時間

#下面這種是有層級的
# r.set(‘txz:ybq‘,‘沒交‘) #
# r.set(‘txz:haixia‘,‘交了‘) #
# print(r.keys())#擷取所有的key
# print(r.keys(‘txz*‘)) #以txz開頭的key
# print(r.type(‘sessions‘))#擷取key的類型

# 把redis裡面一個資料庫的東西,弄到另外一個資料庫裡。
# 1、建立兩個redis串連
#1、src
# 2、 target
#2、擷取到所有的key,kyes ()
# 3、判斷key的類型,string hash

def op_redis(host,password,k,v=None,port=6379,db=0):
r = redis.Redis(host=host,password=password,port=port,db=db)
if v:
r.set(k,v)
res = ‘ok‘
else:
res = r.get(k)
if res: #這裡是判斷有沒有get到資料
res = res.decode()
else:
res = None
return res

# print(__name__)
# print(‘哈哈哈哈,我在這裡頭‘)
# if __name__==‘__main__‘:
# #別人匯入這個python檔案的時候,下面的代碼不會被執行
# #自己測試的時候用
# print(__name__) # __main__
# # print(‘哈哈哈哈哈哈 到底有沒有執行‘)
# sql = ‘select * from bt_stu limit 5;‘
# sql2 = ‘update bt_stu set class="天蠍座3" where id=503;‘
# res = op_mysql(
# host=‘211.149.218.16‘,
# user=‘jxz‘,password=‘123456‘,#port這裡一定要寫int類型
# port=3306,db=‘jxz‘,charset=‘utf8‘,sql=sql2)
# print(res)

redis 資料移轉
import redis

src_redis = redis.Redis(host=‘211.149.218.16‘,port=6379,password=‘123456‘,db=2)#連上redis
target_redis = redis.Redis(host=‘211.149.218.16‘,port=6379,password=‘123456‘,db=14)#連上redis
for key in src_redis.keys():
if src_redis.type(key) == b‘string‘: #判斷key的類型,因為redis資料取出來都是二進位的,所以這裡也用bytes
v = src_redis.get(key) #先擷取到原來的資料
target_redis.set(key,v) #再set到新的裡面
else:
all_hash_data = src_redis.hgetall(key) #先擷取到hash類型裡面所有的資料
for k,v in all_hash_data.items(): #因為hash類型的擷取到之後是一個字典,所以這裡迴圈字典
target_redis.hset(key,k,v) #key是外面的大key,k是裡面的小k,v就是小k對應的value




day6-Python學習筆記(十三)redis資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.