<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
pip install redis
import redis # 方式一 r = redis.StrictRedis(host='localhost', port=6379, db=0) # 方式二 r = redis.Redis(host='localhost', port=6379, decode_responses=True) # 方式三,連線池 pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True) r = redis.Redis(host='localhost', port=6379, decode_responses=True)
import redis r = redis.Redis(host='localhost', port=6379, decode_responses=True) # 設定值並設定過期時間, ex單位: 秒 r.set('food', 'mutton', ex=3) # 獲取值 r.get('food') # 設定值並設定過期時間, px單位: 毫秒 r.set('food', 'beef', px=3) # nx=True時,則只有name不存在時,當前set操作才執行 r.set('fruit', 'watermelon', nx=True) # xx=True時,則只有name存在時,當前set操作才執行 r.set('fruit', 'watermelon', xx=True) # setnx設定值,只有name不存在時,執行設定操作 r.setnx('fruit1', 'banana') # setex第一個引數是key,第二個是過期時間(秒),第三個是值 r.setex("fruit2", 5, "orange") # psetex第一個引數是key,第二個是過期時間(毫秒),第三個是值 r.psetex("fruit3", 5000, "apple") # 批次設定值 mset(*args, **kwargs) r.mset(k1="v1", k2="v2") # 批次獲取 r.mget('k1', 'k2') r.mget(['k1', 'k2']) # 設定新值並獲取原來的值 r.getset("food", "barbecue") # 獲取子序列(根據位元組獲取,非字元) r.getrange("cn_name", 0, 2) r.getrange("en_name", 0, -1) # 修改字串內容,從指定字串索引開始向後替換(新值太長時,則向後新增) r.setrange("en_name", 1, "ccc") # 對 name 對應值的二進位制表示的位進行操作 r.setbit(name, offset, value) # 獲取name對應的值的二進位制表示中的某位的值,0或1 r.getbit("foo1", 0) # 獲取name對應的值的二進位制表示中 1 的個數 r.bitcount("foo",0,1) # 獲取多個值,並將值做位運算,將最後的結果儲存至新的name對應的值 r.bitop("AND","new","foo","foo1") # 返回name對應值的位元組長度(一個漢字3個位元組) r.strlen("foo") # 自增 name 對應的值,當 name 不存在時,則建立 name=amount,否則,則自增。 r.incr("foo", amount=1) # 自增 name對應的值,當name不存在時,則建立name=amount,否則,則自增。 r.incrbyfloat("foo1", amount=2.0) # 自減 name 對應的值,當 name 不存在時,則建立 name=amount,否則,則自減。 r.decr("foo4", amount=3) # 在redis name對應的值後面追加內容 r.append("name", "haha")
import redis r = redis.Redis(host='localhost', port=6379, decode_responses=True) # name對應的hash中設定一個鍵值對(不存在,則建立;否則,修改) r.hset("hash1", "k1", "v1") # 在name對應的hash中批次設定鍵值對 r.hmset("hash2", {"k2": "v2", "k3": "v3"}) # 在name對應的hash中獲取根據key獲取value r.hmget("hash2", "k2", "k3") r.hmget("hash2", ["k2", "k3"]) # 取出所有的鍵值對 r.hgetall("hash1") # 得到所有鍵值對的格式 hash長度 r.hlen("hash1") # 得到所有的keys(類似字典的取所有keys) r.hkeys("hash1") # 得到所有的value(類似字典的取所有value) r.hvals("hash1") # 判斷成員是否存在(類似字典的in) r.hexists("hash1", "k4") # 刪除鍵值對 r.hdel("hash1", "k1") # 自增自減整數 r.hincrby("hash1", "k3", amount=-1) # 自增自減浮點數 r.hincrbyfloat("hash1", "k5", amount=-1.0) # 取值檢視--分片讀取 r.hscan("hash1") # 利用yield封裝hscan建立生成器,實現分批去redis中獲取資料 for item in r.hscan_iter('hash1'): print(item) print(r.hscan_iter("hash1"))
import redis r = redis.Redis(host='localhost', port=6379, decode_responses=True) # 增加 (從左邊新增加)--沒有就新建 r.lpush("list1", 11, 22, 33) # 增加(從右邊增加)--沒有就新建 r.rpush("list2", 11, 22, 33) # 在name對應的list中新增元素,只有name已經存在時,值新增到列表的最左邊 r.lpushx("list10", 10) # 往已經有的name的列表的右邊新增元素,沒有的話無法建立 r.rpushx("list2", 99) # 在name對應的列表的某一個值前或後插入一個新值 r.linsert("list2", "before", "11", "00") # 修改(指定索引號進行修改) r.lset("list2", 0, -11) # 刪除(指定值進行刪除) r.lrem("list2", "11", 1) # 刪除並返回 r.lpop("list2") # 刪除列表最左邊的元素,並且返回刪除的元素 r.rpop("list2") # 刪除列表最右邊的元素,並且返回刪除的元素 # 刪除索引之外的值 r.ltrim("list2", 0, 2) # 根據索引號取值 r.lindex("list2", 0) # 移動 元素從一個列表移動到另外一個列表 r.rpoplpush("list1", "list2") # 移動 元素從一個列表移動到另外一個列表 可以設定超時 r.brpoplpush("list1", "list2", timeout=2) # 一次移除多個列表 r.blpop(["list10", "list11"], timeout=2) # 自定義增量迭代 def list_iter(name): """ 自定義redis列表增量迭代 :param name: redis中的name,即:迭代name對應的列表 :return: yield 返回 列表元素 """ list_count = r.llen(name) for index in range(list_count): yield r.lindex(name, index)
import redis r = redis.Redis(host='localhost', port=6379, decode_responses=True) # 新增 r.sadd("set1", 33, 44, 55, 66) # 獲取元素個數 類似於len r.scard("set1") # 獲取集合中所有的成員 r.smembers("set1") # 獲取集合中所有的成員--元組形式 r.sscan("set1") # 獲取集合中所有的成員--迭代器的方式 for i in r.sscan_iter("set1"): print(i) # 差集 r.sdiff("set1", "set2") # 差集--差集存在一個新的集合中 r.sdiffstore("set3", "set1", "set2") # 交集 r.sinter("set1", "set2") # 交集--交集存在一個新的集合中 r.sinterstore("set3", "set1", "set2") # 並集 r.sunion("set1", "set2") # 並集--並集存在一個新的集合 r.sunionstore("set3", "set1", "set2") # 判斷是否是集合的成員 類似in r.sismember("set1", 33) # 移動 將某個成員從一個集合中移動到另外一個集合 r.smove("set1", "set2", 44) # 刪除--隨機刪除並且返回被刪除值 r.spop("set2") # 刪除--指定值刪除 r.srem("set2", 11)
import redis r = redis.Redis(host='localhost', port=6379, decode_responses=True) # 新增 r.zadd("zset2", 'm1', 22, 'm2', 44) # 獲取有序集合元素個數 類似於len r.zcard("zset1") # 獲取有序集合的所有元素 r.zrevrange("zset1", 0, -1) # 獲取所有元素--迭代器 for i in r.zscan_iter("zset3"): # 遍歷迭代器 print(i) # 獲取name對應的有序集合中分數 在 [min,max] 之間的個數 r.zcount("zset3", 11, 22) # 自增 r.zincrby("zset3", "n2", amount=2) # 獲取值的索引號 r.zrank("zset3", "n1") # 刪除--指定值刪除 r.zrem("zset3", "n3") # 刪除--根據排行範圍刪除,按照索引號來刪除 r.zremrangebyrank("zset3", 0, 1) # 刪除--根據分數範圍刪除 r.zremrangebyscore("zset3", 11, 22) # 獲取值對應的分數 r.zscore("zset3", "n27")
import redis r = redis.Redis(host='localhost', port=6379, decode_responses=True) # 刪除 根據刪除redis中的任意資料型別 r.delete("gender") # 檢查名字是否存在 r.exists("zset1") # 模糊匹配 根據模型獲取redis的name r.keys("foo*") # 設定超時時間 r.expire("list5", time=3) # 重新命名 r.rename("list5", "list5-1") # 隨機獲取name r.randomkey() # 獲取型別 r.type("set1") # 查詢所有的Key r.keys() # 當前redis包含多少條資料 r.dbsize() # 清空r中的所有資料 r.flushdb()
import redis r = redis.Redis(host='localhost', port=6379, decode_responses=True) # 預設的情況下,管道里執行的命令可以保證執行的原子性 # 預設 pipe = r.pipeline(transaction=True) # 禁止 pipe = r.pipeline(transaction=False) # 建立一個管道 pipe = r.pipeline() pipe.set('name', 'jack') pipe.set('role', 'sb') pipe.sadd('faz', 'baz') pipe.incr('num') pipe.execute() # 或者寫成 pipe.set('hello', 'redis').sadd('faz', 'baz').incr('num').execute() print(r.get("name")) print(r.get("role")) print(r.get("num"))
到此這篇關於python 包 redis 資料庫的操作教學的文章就介紹到這了,更多相關 redis 資料庫操作 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45