python對nosql的操作二

2021-08-11 09:52:21 字數 2513 閱讀 8494

# redis中的string在記憶體中都是按照乙個key對應乙個value來儲存的

'''set的使用方法:

set(name, value, ex=none, px=none, nx=false, xx=false)

ex,過期時間(秒)

px,過期時間(毫秒)

nx,如果設定為true,則只有name不存在時,當前set操作才執行,同setnx(name, value)

xx,如果設定為true,則只有name存在時,當前set操作才執行'''

import redis

pool = redis.connectionpool(host="localhost"

, port=6379

, db=0)

r = redis.redis(connection_pool=pool)

r.set("name"

,"feng") # 設定name的值為feng

print(r.keys()) # 列印出所有的key

print(r.get("name")) # 根據key獲取對應的值,輸出為feng

# mset()用於批量設定值

r.mset(name1="shang"

, name2="xia")

r.mset() # 使用字典的方式設定值,推薦使用

# mget(keys, *args)用於批量獲取值

print(r.mget("name1"

, "name2"

, "name3"

, "name4"))

# redis中的list在在記憶體中按照乙個name對應乙個list來儲存

lpush(name,values)

# 在name對應的list中新增元素,每個新的元素都新增到列表的最左邊

r.lpush("list_name",1)

r.lpush("list_name",2

,3,4)

# 儲存在列表中的順序為4,3,2,1

rpush(name,values)

# 同lpush,但每個新的元素都新增到列表的最右邊

linsert(name,where,refvalue,value):在name對應的列表的某乙個值前後插入乙個新值

# name,list對應的key值

# where,before或after

# refvalue,list中的某個元素

# value,要插入的value值

# 如:linsert("list","after","test2","hello")

lrange(name,start,end):在name對應的列表分片獲取資料,如:r.lrange("list",0

,-1)

r.lset(name,index,value):對name對應的list中的某乙個索引位置重新賦值

# name,redis的name

# index,list的索引位置

# value,要設定的值

# 如:r.lset("list",0,"world")

lpop(name):在name對應的列表的左側獲取第乙個元素並在列表中移除,返回值刪除那個元素的值

# 擴充套件: rpop(name) 表示從右向左操作

lindex(name,index):在name對應的列表中根據索引取列表元素

r.lrem(name,value,num):在name對應的list中刪除指定的值

# name,redis的name

# value,要刪除的值

# num,num=0,刪除列表中所有的指定值;

# num=2,從前到後,刪除2個

# num=-2,從後向前,刪除2個

# set集合就是不重複的列表

# sadd(name,values),給name對應的集合中新增元素,values可以寫多個但是不能重複

r.sadd("set_name"

,"aa")

r.sadd("set_name"

,"aa"

,"bb")

smembers(name) # 獲取name對應的集合的所有成員

scard(name) # 獲取name對應的集合中的元素個數

srem(name, value) # 刪除集合中的某個元素,如:r.srem("set_name", "aa")

sinter(keys, *args) # 獲取多個name對應集合的並集,如:r.sinter("set_name","set_name1","set_name2")

sunion(keys, *args) # 獲取多個name對應集合的並集,如:r.sunion("set_name","set_name1","set_name2")

smembers(name) # 獲取name對應的集合的所有成員

sismember(name, value) # 檢查value是否是name對應的集合內的元素,0表示不屬於,1表示屬於

對NOSQL學習的理解

之前的5年職業生涯中沒有接觸過nosql的東西,到了現在的單位接觸了幾大主流的nosql平台,如redis mongodb hbase等,自己的能力得到一定的提公升,可是自己在這些方面的知識的深度還是不夠,如果在往深入一點的話就不行了,所以,雖然上班快8年了,自己的知識體系還是要繫豐富一下的,也就是...

NoSQL 集合間的操作

求多個集合的交集 sinter key key 求多個集合的並集 sunion key key 求多個集合的差集 sdiff key key 第乙個key裡面有的,第二個key裡面沒有的 將交集 並集 差集的結果儲存 sinterstore destination key key sunionsto...

NoSQL安裝與操作

redis操作 redis的啟動與關閉 注意 需要關閉防火牆 redis的啟動 redis server redis.conf redis的登入 redis cli a pass redis的遠端登入 redis cli h ip a pass redis的關閉 redis cli p 6379 a...