python操作三大主流數據庫(12)python操作redis的api框架redis-py簡單使用

python操作三大主流數據庫(12)python操作redis的api框架redis-py簡單使用

redispy安裝
安裝及簡單使用:https://github.com/andymccurdy/redis-py
api參考文檔:http://redis-py.readthedocs.io/en/latest/

1.安裝redis-py

?

pip install redis
C:\Users\ajie>workon flask
(flask) C:\Users\ajie>d:
(flask) d:\python_envs\flask>pip install redis

2.簡單測試

#coding:utf-8import redis# redis.Redis()兼容老版本,redis.StrictRedis()不考慮兼容性
r = redis.Redis(host='localhost', port=6379, db=0)
# r = redis.StrictRedis(host = 'localhost', port=6379, db=0)

user1 = r.get('user1')
print(user1)(flask) d:\python_envs\flask>python python_redis.py
b'jhon'

3.python操作redis的常用方法

#coding:utf-8import redisclass Base(object):def __init__(self):self.r = redis.StrictRedis(host = 'localhost', port=6379, db=0)class StringTest(object):def __init__(self):# redis.Redis()兼容老版本,redis.StrictRedis()不考慮兼容性# self.r = redis.Redis(host='localhost', port=6379, db=0)self.r = redis.StrictRedis(host = 'localhost',port=6379, db=0,decode_responses=True)def test_set(self):''' set -- 設置值 '''rest = self.r.set('user2', 'amy')print(rest)return restdef test_get(self):'''get -- 獲取值'''rest = self.r.get('user2')print(rest)return restdef test_mset(self):''' mset -- 設置多個鍵值對 '''d = {'user3': 'Bob','user4': 'Bobx'}rest = self.r.mset(d)print(rest)return restdef test_mget(self):''' mset -- 設置多個鍵值對 '''d = ['user3','user4']rest = self.r.mget(d)print(rest)return restdef test_del(self):''' del刪除鍵值 '''rest = self.r.delete('user3')print(rest)def test_push(self):''' lpush/rpush -- 從左/右插入數據 '''t = ['Amy', 'Jhon']# 如果不加*則會把兩個元素當做整體存入rest = self.r.lpush('l_eat3', *t)print(rest)rest = self.r.lrange('l_eat3', 0, -1)print(rest)def test_pop(self):''' lpop/rpop 移除最左/右邊的元素并返回值'''rest = self.r.lpop('l_eat3')print(rest)rest = self.r.lrange('l_eat3', 0, -1)print(rest)class SetTest(Base):def test_sadd(self):''' sadd --添加元素 '''l = ['cat', 'dog', 'monkey']# rest = self.r.sadd('zoo2', l)rest = self.r.sadd('zoo2', *l)print(rest)rest = self.r.smembers('zoo2')print(rest)def test_srem(self):''' srem -- 刪除元素 '''rest = self.r.srem('zoo2', 'monkey')print(rest)rest = self.r.smembers('zoo2')print(rest)def test_sinter(self):''' sinter --返回元素的交集 '''rest = self.r.sinter('zoo2', 'zoo1')print(rest)class HashTest(Base):def hset_test(self):''' hset設置新聞內容 self.r.hset(1,'title','朝鮮特種部隊視頻公布展示士兵身體素質與意志')self.r.hset(1,'content','content01')self.r.hset(1,'img_url','/static/img/news/01.png')self.r.hset(1,'is_valid','true')self.r.hset(1,'news_type','推薦')self.r.hset(2,'title','男子長得像\"祁同偉\"挨打 打人者:為何加害檢察官')self.r.hset(2,'content','因與熱門電視劇中人物長相相近,男子竟然招來一頓拳打腳踢。4月19日,打人男子周某被抓獲。半個月前,酒后的周某看到KTV里有一名男子很像電視劇中的反派。二話不說,周某沖上去就問你為什么要加害檢察官?男子莫名其妙,回了一句神經病。周某一聽氣不打一處來,對著男子就是一頓拳打腳踢,嘴里面還念叨著,“叫你加害檢察官,我打死你!”隨后,周某趁機逃走。受傷男子立即報警,周某被上海警方上網通緝')self.r.hset(2,'img_url','/static/img/news/02.png')self.r.hset(2,'is_valid','true')self.r.hset(2,'news_type','百家')'''''' mset/mget -- 設置/獲取散列值'''rest = self.r.hset('stu:002','name','tom')print(rest)rest = self.r.hexists('stu:002','name')print(rest)rest = self.r.hget('stu:002', 'name')print(rest)def mset_test(self):''' 獲取新聞的數據 '''# rest = self.r.hget(1,'title')# print(rest.decode('utf-8'))# rest = self.r.hget(1, 'news_type')# print(rest.decode('utf-8'))# rest = self.r.hget(3,'title')# print(rest.decode('utf-8'))# rest = self.r.hget(3, 'news_type')# print(rest.decode('utf-8'))# mset和hkeysm = {'name':'lily','age':18,'grade':90}rest = self.r.hmset('stu:003', m)print(rest)rest = self.r.hkeys('stu:003')print(rest)rest = self.r.hvals('stu:003')print(rest)def test_hgetall(self):data = self.r.hgetall('news:3')print(data['title'].decode('utf-8'))print(data['content'].decode('utf-8'))def main():# st = StringTest()# st.test_set()# st.test_get()# st.test_mset()# st.test_mget()# st.test_del()# st.test_push()# st.test_pop()# set_test = SetTest()# set_test.test_sadd()# set_test.test_srem()# set_test.test_sinter()
ht = HashTest()# ht.mset_test()# ht.hset_test()# ht.hget_test()
    ht.test_hgetall()if __name__ == "__main__":main()

?

轉載于:https://www.cnblogs.com/reblue520/p/8549336.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539190.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539190.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539190.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Hive的數據模型-外部表

概述 包含External 的表叫外部表 刪除外部表只刪除metastore的元數據,不刪除hdfs中的表數據 外部表 只有一個過程,加載數據和創建表同時完成,并不會移動到數據倉庫目錄中,只是與外部數據建立一個鏈接。當刪除一個 外部表 時&…

對github的初步認識以及對軟件技術基礎課程的期待

對github的初步認識: Git是一個開源的分布式版本控制系統(版本控制是一種記錄一個或若干文件內容變化,以便將來查閱特定版本修訂情況的系統),客戶端并不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像…

centos默認安裝mysql_centos6.x默認安裝mysql5.7

1. yum 安裝 mysql5.7 yum 源yum localinstall mysql57-community-release-el6-8.noarch.rpm2. 查看是否成功安裝MySQL Yum Repositoryyum repolist enabled|grep ""mysql.*-community.*3. 安裝mysqlyum install mysql-community-server4.開啟數據庫服務service mys…

Hive的數據模型-分區表

需求 select * from t1 where xxxx; 這是全表掃描的。實際應用中,有時候不一定需要全表掃描。 比如電信的日志文件,一個表里存了從去年到現在的日志文件,那是很多很大的,實際需求要查今天的,如果用上面的sql&#xf…

arduino 停止程序_建立Arduino機器人,第五部分:障礙規避

歡迎閱讀教程系列的第五篇文章,其中我正在構建一個基于遙控Arduino的車輛機器人。這是我到目前為止發表的文章列表:第一部分:硬件組件第二部分:Arduino編程第三部分:組裝機器人第四部分:A(不是那樣)基本機器…

debug error怎么解決_我要以血和淚的經歷告訴你,這個 bug 太難解決了

[npm install報錯: npm WARN tar ENOENT: no such file or directory]npm installnpm WARN deprecated request2.88.2: request has been deprecated, see request/request#3142npm WARN deprecated mkdirp0.5.1: Legacy versions of mkdirp are no longer supported. Please u…

Yarn簡單介紹及內存配置

在這篇博客中,主要介紹了Yarn對MRv1的改進,以及Yarn簡單的內存配置和Yarn的資源抽象container。我么知道MRv1存在的主要問題是:在運行時,JobTracker既負責資源管理又負責任務調度,這導致了它的擴展性、資源利用率低等問…

mysql計算時間函數_mysql時間計算函數

當前一個業務需求,需要查找創建在三天以前的數據,表中是存了一個創建時間的;這個需求看起來很簡單,直接全部查找出來然后用代碼根據時間篩選一下就可以了。但這只是適用于數據量不大的情況下,如果數據量大,…

html上傳文件_.NET基于WebUploader大文件分片上傳、斷網續傳、秒傳

(給DotNet加星標,提升.Net技能)轉自:學習中的苦與樂cnblogs.com/xiongze520/p/10412693.html現在的項目開發基本上都用到了上傳文件功能,或圖片,或文檔,或視頻。我們常用的常規上傳已經能夠滿足當前要求了,…

Hadoop運行任務時一直卡在: INFO mapreduce.Job: Running job

原文鏈接:http://blog.csdn.net/dai451954706/article/details/50464036 ----------------------------------------------------------------------------------------------------- 今天,一大清早同事就讓我幫他解決Hive的問題:他在Hive中…

git切換用戶密碼_Git 最基本的命令

本人比較懶,不是很愛學習新東西,之前用Git一直在用GUI SourceTree,今天因為用到Cloud IDEGitHub才迫不得已用一下Git的命令行,如果你是Git的新手,也分享給你最基本的命令。新建一個Git版本庫把一個本地文件夾變成一個G…

動態分區裝載數據

不開啟 一個個分區導入,分區需要做到一對一。 hive (zmgdb)> insert overwrite table p_t3 partition (cityningbo) > select name,post,address from p_t1 where cityningbo; 會啟動mapreduce進行導入,mr卡在kill job_xxxx&#…

python爬蟲常見報錯_對Python爬蟲常見工具總結,歡迎補充

前言 以前寫爬蟲都是用requests包,雖然很好用,不過還是要封裝一些header啊什么的,也沒有用過無頭瀏覽器,今天偶然接觸了一下。 原因是在處理一個錯誤的時候,用到了幾個以前沒有用過的工具;這幾個工具也挺常…

AI造福設計師:搭配色板這種苦差事交給GAN就好啦(教程)

本文來自AI新媒體量子位(QbitAI)設計師要開工,總是離不開配色方案,也就是色板。 不過,做色板可不是個簡單的活,色板生成器Colormind的作者Jack Qiao(名字來自Product Hunt,我們下面叫…

mapreduce yarn內存參數

1、yarn-site.xml 設置 1.1 RM設置 RM的內存資源配置,主要是通過下面的兩個參數進行的(這兩個值是Yarn平臺特性,應在yarn-sit.xml中配置好): yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocati…

python有哪些常用的package_個人Python常用Package及其安裝

為了避免每次重裝系統時又要東翻西找,現在此記錄一下目前常用的Python包安裝過程。 1) Python: 2.7.11, 下載地址:www.python.org。由于個人喜歡使用PyQt4(其實是不會PyQt5……),因此選擇安裝Python2.7。 安裝好Python…

html網頁設計大賽_HTML5網頁設計大賽 || 決賽名單公布

歷經數日的HTML5網頁設計大賽初賽已經落下的帷幕激動人心的決賽即將開始你們準備好了嗎?①決賽名單在經過評委老師多輪評選后,有以下隊伍/(個人)脫穎而出進入決賽:1.施佳鏞_故宮旅游網2.王永校_神秘莫測的宇宙3.黃煒岳_廣州旅游網站4.吳貴濱_NameLess5.陳…

2018.03.12、Android知識點-Java篇

1、闡述下對象的自動裝箱和拆箱 2 基本數據類型的自動裝箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0開始提供的功能。自動裝箱是java編譯器在java原生類型和對應的對象包裝類型上做的自動轉換。 自動裝箱:Integer i 1;其實編譯器為你自動實現了&#x…

Hive的數據模型—桶表

概述 桶表是對數據進行哈希取值,然后放到不同文件中存儲。 數據加載到桶表時,會對字段取hash值,然后與桶的數量取模。把數據放到對應的文件中。 物理上,每個桶就是表(或分區)目錄里的一個文件,一個作業產…

mysql+使用swap_MySQL避免使用SWAP

當物理內存的數量不能容納數據的時候,os會把虛擬內存中的數據寫到磁盤上,此時的交換對于運行在操作系統中的進程是透明的。交換對與MySQL性能有很大的影響,對于Innodb存儲引擎它對內存中的數據鎖住全局互斥量,如果此時導致了磁盤的…