新手學習python(十)操作資料庫redis

來源:互聯網
上載者:User

標籤:redis資料庫   ==   admin   新手學   目錄   new   增刪改查   type   dump   

資料庫分為兩類:
1.關係型資料庫: MySQL,Oracle,sql server,db2,sqlite
需要sql語句
資料存在磁碟上
2.非關係型資料庫:mongodb, redis
沒有表結構
沒有sql語句
使用get(‘k‘),set(‘xx‘)

說明:1.redis資料全部存在記憶體裡面
2.redis本身效能是非常好的,每秒支援30w次的讀寫

import redis
r=redis.Redis(host=‘xx.xx.xx.xx‘,password=‘aaaaa‘,db=0,port=6379) #串連redis資料庫,host是資料庫ip
#增刪改查,針對string類型
r.set(‘zhangsan‘,‘帥!‘) #資料庫裡面新增一個值,‘zhangsan‘是key,‘帥‘是value
#修改也是set
r.delete(‘shangsan‘) #刪除
r.setex(‘lisi_600‘,‘哈哈哈‘,600) #設定key的失效時間,單位秒
r.get(‘lisi‘).decode() #擷取的值是二進位,要轉換成字串
lisi=r.get(‘lisi‘)
print(lisi) #列印出來的是位元據

r.keys(‘qianwu‘) #擷取到所有的key
r.set(‘天蠍座:mpp‘,‘hahaha‘) #key是嵌套目錄
r.get(‘天蠍座:mpp‘)

---------------------------------------------
#操作雜湊類型資料 hash 嵌套字典
for k in r.keys(): #刪除所有的key
r.delete(k)

r.hset(‘stu_info‘,‘zuobian‘,‘1.8cm‘) #新增hash類型資料
r.hset(‘stu_info‘,‘zhangsan‘,‘浪‘)
r.type(‘stu_info‘) #查看key是什麼類型
r.hget(‘stu_info‘,‘zhangsan‘).decode() #指定大key和和小key擷取對應的資料

stu_info=r.hgetall(‘stu_info‘) #擷取裡面所有的k和v
new_stu_info={}
for k,v in stu_info.items(): #從redis擷取的k,v放入字典中
new_stu_info[k.decode()]=v.decode()
print(new_stu_info)

r.hdel(‘stu_info‘,‘zhangsan‘) #刪除指定key
r.delete(‘stu_info‘) #刪除整個key
r.ttl(‘lisi_600‘) #擷取key的失效時間
r.expire(‘aaa‘,100) #對一個key設定失效時間,雜湊,string都可用

======= 小練習 =========
1.串連資料庫mysql,遊標類型要用pymysql.cursors.DictCour
2.查到資料庫裡所有資料 [ {"id":1,"passwd":"59787dd4f94034a6145275e48ad09447","username":"zhangsan","is_admin":1}]
3.迴圈這個list,取到username,把username當做key
4.把這個小字典轉成json,存到redis裡

import pymysql,json,redis

r=redis.Redis(host=‘yy.yy.yy.yy‘,password=‘123456‘,db=0,port=6379) #串連redis資料庫
coon=pymysql.connect(host=‘xx.xx.xx.xx‘,user=‘aaa‘,passwd=‘12345678‘,db=‘aaa‘,charset=‘utf8‘) #串連pymysql
cur=coon.cursor(pymysql.cursors.DictCursor) #遊標類型用字典類型
cur.execute(‘select * from my_user;‘) #執行查詢語句
all_data=cur.fetchall() #擷取所有結果
for data in all_data:
k=data.get(‘username‘) #擷取使用者名稱
r.hset(‘stu_info_tt‘,k,json.dumps(data)) #寫入使用者名稱和資料,用json類型
cur.close()
coon.close()


新手學習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.