標籤: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