中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis安裝,語法和Python連接

發布時間:2020-09-06 20:04:28 來源:網絡 閱讀:1228 作者:天道酬勤VIP 欄目:數據庫


程序下載http://down.51cto.com/data/2440789:


點擊客戶端進行連接測試,出現下圖說明測試成功

redis安裝,語法和Python連接

redis安裝,語法和Python連接


語法:

redis的字符串操作

	set(key,value,ex=None,px=None,nx=False,xx=False)
		在redis中設置值,默認,不存在則創建,存在則修改
		參數:
			ex:過期時間(秒)
			px: 過期時間(毫秒)
			nx:如果設置為True,則只有key不存在時。當前set才會執行
			xx:如果設置為True,則只有key存在時,當前set才會執行

	setnx(key,value)
		設置值,只有key不存在時,執行設置操作

	setex(key,value,time)
		設置值
		參數:
			time:過期時間單位是秒
			
	psetex(key,value,time)		
		設置值
		參數:
			time:過期時間單位是毫秒
			
	mset(*args,**kwargs)
		批量設置值
		如:
			mset k1 v1 k2 v2
			或者mset(k1='v1',k2='v2')

	getset(key,value)
		設置新值并返回原來的值

	getrange(key,start,end)
		獲取子序列(根據字節獲取,非字符)
		參數:
			key: redis的key
			start:起始位置(字節)
			end:  結束位置(字節)
		如:“張三”,0-3表示“張”
		
	setrange(key,offset,value)
		修改字符串內容。從指定字符串索引開始向后替換(新值太長時,則向后添加)
		參數:
			offset: 字符串的索引,字節(一個漢字三個字節)
			value:  要設置的值

	setbit(key,offset,value)
		對key對應的二進制表示的位進行操作
		參數:
			key:  redis的key
			offset:位的索引(將值變為二進制后再進行索引)
			value:   值只能是0或1
		例:
			如果在redis中有一個對應:n1 = "foo"
				那么字符串“foo”的二進制表示為:01100110 01101111 01101111
				如果執行setbit('n1',7,1)則就會將第七位設置為1
				那么最終二進制則變成 01100111 01101111 01101111 即“goo”
				代碼實現
					127.0.0.1:6379> set n1 foo
					OK
					127.0.0.1:6379> setbit n1 7 1
					(integer) 0
					127.0.0.1:6379> get n1
					"goo"
					127.0.0.1:6379>
		用處:
			如QQ統計在線人數,并且看誰在線:
			
				讓1代表在線。0代表不在線
				offset代表用戶對應的ID
				如果用戶上線,則將該ID設置為1
				用bitcount統計有多少個1,即有多少用戶在線
				用getbit查看用戶是否在線
				代碼實現:
					127.0.0.1:6379> setbit QQ 55 1
					(integer) 0
					127.0.0.1:6379> setbit QQ 1000 1
					(integer) 0
					127.0.0.1:6379> bitcount QQ
					(integer) 2
					127.0.0.1:6379> getbit QQ 55
					(integer) 1
					127.0.0.1:6379>  getbit QQ 66
					(integer) 0
					127.0.0.1:6379>

	append(key,value)
			在redis,key對應的值后追加
			參數:
				key:	redis的key
				value: 要追加的字符串
			例子:
				127.0.0.1:6379> get zhang
				"san"
				127.0.0.1:6379> append zhang san
				(integer) 6
				127.0.0.1:6379> get zhang
				"sansan"
				127.0.0.1:6379>
				
	del key
		刪除key
hash
	如果需要存一個班級的姓名等信息
	
		127.0.0.1:6379> hset info key duwentao
		(integer) 1
		127.0.0.1:6379> hset info age 20
		(integer) 1
		127.0.0.1:6379> hset info id 1
		(integer) 1
		127.0.0.1:6379> hgetall info
		1) "key"
		2) "duwentao"
		3) "age"
		4) "20"
		5) "id"
		6) "1"
		127.0.0.1:6379> hget info age
		"20"
		127.0.0.1:6379> hkeys info  #查看有多少key
		1) "key"
		2) "age"
		3) "id"
		127.0.0.1:6379> hvals info #查看有多少value
		1) "duwentao"
		2) "20"
		3) "1"
		
	
	hmset key field value [field value ...]
		用法:
			127.0.0.1:6379> hmset li k1 v1 k2 v2 k3 v3
			OK
			127.0.0.1:6379> hgetall li
			1) "k1"
			2) "v1"
			3) "k2"
			4) "v2"
			5) "k3"
			6) "v3"
			
	hget key field
		在key對應的hash中獲取根據key獲取value
		
	hmget key field [field ...]
		用法:
		127.0.0.1:6379> hmget li k1 k2
		1) "v1"
		2) "v2"
	
	hlen(key)
		獲取有幾個key
	
	hkeys(key)
		獲取key對應的hash中所有key的值
	
	hvals(key)
		獲取key對應的hash中所有的value值
	
	hexists key field
		檢查key對應的hash是否存在當前傳入的key
			
	hincrby key field increment
		自增加
			127.0.0.1:6379> hincrby info age 1
			(integer) 21
			127.0.0.1:6379>  hincrby info age 1
			(integer) 22
				
	hscan key cursor [MATCH pattern] [COUNT count]
			起到一個過濾的作用
			如  hscan info 0 match *a*
			
			
列表:
	
	lpush(從左邊放)和rpush(從右邊放)
	
		127.0.0.1:6379> lpush keys1 zhangsan lisi wanger
		(integer) 3
		127.0.0.1:6379>  LRANGE keys1 0 -1
		1) "wanger"
		2) "lisi"
		3) "zhangsan"
		127.0.0.1:6379> RPUSH keys2 zhangsan lizi wanger
		(integer) 3
		127.0.0.1:6379>  LRANGE keys2 0 -1
		1) "zhangsan"
		2) "lizi"
		3) "wanger"
		127.0.0.1:6379>
	
	lpushx key value
		在key對應的list中添加元素,只對key已經存在時,值添加到列表的最左邊
	
	rpushx key value
		在key對應的list中添加元素,只對key已經存在時,值添加到列表的最右邊
		
	llen key
		key對應的list元素個數
	
	LINSERT key BEFORE|AFTER pivot value
		在key對應的列表的某一個值前或后插入一個新值
		參數:
			key:            redis的key
			BEFORE|AFTER:   在什么或者后
			privot:         標桿值,即在他前后插入數據
			value:          要插入的數據
		
	lset key index value
		對key對應的list中的某一個索引位置進行重新賦值
		參數:
			key:  redis的key值
			index:list的索引位置
			value:要設置的值
			
	lrem key count value
		在key對應的list中刪除指定的值
		
		參數:
			key:redis的key
			value:要刪除的值
			count:
				count=0: 刪除列表中所有的指定的值
				count=2: 從前向后,刪除兩個
				count=-2:從后向前,刪除兩個

	lpop key
		在key對應的列表的左側獲取第一個元素并在列表中刪除,返回值則是第一個元素。
		
	lindex key index
		在key中對應的列表中根據索引獲取列表元素
	
	LRANGE key start stop
		在key對應的列表分片獲取數據
		參數:
			key:  redis的key
			start:索引的起始位置
			end:  索引的結束位置
	
	LTRIM key start stop
		在key對應的列表中移除沒有在start stop索引之間的值
		參數:
			key:redis的key
			start:索引的起始位置
			stop:索引的結束位置
		
	RPOPLPUSH source destination
		從一個表中取出最右邊的元素,同時將其添加至另一個列表的最左邊
		參數:
			source:     要取出數據的列表的key
			destination:要添加數據的列表的key
	
	BRPOPLPUSH source destination timeout
		從一個列表的右側移除一個元素并將其添加到另一個列表的左側
		參數:
			source:取出并移除元素的列表對應的key
			destination:要插入元素的列表對應的key
			timeout:當source對應的列表中沒有數據時,阻塞等待其數據的超時時間(秒),0表示永遠堵塞
		
集合:
	sadd key member [member ...]
		key對應的集合中添加元素(無重復,無序)
		如:
			127.0.0.1:6379> sadd names3 zhangsan zhangsan lisi lisi 3 3
			(integer) 3
			127.0.0.1:6379> SMEMBERS names3 #獲取所有值
			1) "3"
			2) "lisi"
			3) "zhangsan"
			
	scard key
		獲取key對應的集合中的元素個數
	
	sdiff key [key ...]
		在第一個key對應的集合中且不在其他key對應的集合中的元素
		
	sdiffstore destination key [key ...]	
		在第一個key對應的集合中且不在其他key對應的集合中的元素,把他添加到destination里
		
	
	SINTER key1 [key2] 
		返回給定所有集合的交集
		
	SINTERSTORE destination key1 [key2] 
		返回給定所有集合的交集并存儲在 destination 中
		
	SISMEMBER key member 
		判斷 member 元素是否是集合 key 的成員
		
	SMEMBERS key 
		返回集合中的所有成員
		
	SMOVE source destination member 
		將 member 元素從 source 集合移動到 destination 集合
		
	SPOP key 
		移除并返回集合中的一個隨機元素
		
	SRANDMEMBER key [count] 
		返回集合中一個或多個隨機數
		
	SREM key member1 [member2] 
		移除集合中一個或多個成員
		
	SUNION key1 [key2] 
		返回所有給定集合的并集
		
	SUNIONSTORE destination key1 [key2] 
		所有給定集合的并集存儲在 destination 集合中
		
	SSCAN key cursor [MATCH pattern] [COUNT count] 
		迭代集合中的元素	
		
		
有序集合:
	ZADD key score1 member1 [score2 member2] 
		向有序集合添加一個或多個成員,或者更新已存在成員的分數
	
	ZCARD key 
		獲取有序集合的成員數
	
	ZCOUNT key min max
		計算在有序集合中指定區間分數的成員數
	
	ZINCRBY key increment member 
		有序集合中對指定成員的分數加上增量 increment
	
	ZINTERSTORE destination numkeys key [key ...] 
		計算給定的一個或多個有序集的交集并將結果集存儲在新的有序集合 key 中
	
	ZLEXCOUNT key min max 
		在有序集合中計算指定字典區間內成員數量
	
	ZRANGE key start stop [WITHSCORES] 
		通過索引區間返回有序集合成指定區間內的成員
	
	ZRANGEBYLEX key min max [LIMIT offset count] 
		通過字典區間返回有序集合的成員
	
	ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] 
		通過分數返回有序集合指定區間內的成員
	
	ZRANK key member 
		返回有序集合中指定成員的索引
	
	ZREM key member [member ...] 
		移除有序集合中的一個或多個成員
	
	ZREMRANGEBYLEX key min max 
		移除有序集合中給定的字典區間的所有成員
	
	ZREMRANGEBYRANK key start stop 
		移除有序集合中給定的排名區間的所有成員
	
	ZREMRANGEBYSCORE key min max 
		移除有序集合中給定的分數區間的所有成員
	
	ZREVRANGE key start stop [WITHSCORES] 
		返回有序集中指定區間內的成員,通過索引,分數從高到底
	
	ZREVRANGEBYSCORE key max min [WITHSCORES] 
		返回有序集中指定分數區間內的成員,分數從高到低排序
	
	ZREVRANK key member 
		返回有序集合中指定成員的排名,有序集成員按分數值遞減(從大到小)排序
	
	ZSCORE key member 
		返回有序集中,成員的分數值
	
	ZUNIONSTORE destination numkeys key [key ...] 
		計算給定的一個或多個有序集的并集,并存儲在新的 key 中
	
	ZSCAN key cursor [MATCH pattern] [COUNT count] 
		迭代有序集合中的元素(包括元素成員和元素分值)		

安裝python 模塊

    pip3 install redis


Python 線程池連接redis

redis安裝,語法和Python連接

普通連接redis


redis安裝,語法和Python連接


管道:一次可以執行多個命令


import redis

pool = redis.ConnectionPool(host='127.0.0.1',port=6379) #連接池
#r = redis.Redis(host='127.0.0.1',port=6379)
r = redis.Redis(connection_pool=pool)
pipe = r.pipeline(transaction=True)

r.set('foo','bar')
r.set('zhangsan','heheheh')

pipe.execute()


實現訂閱和發布

服務端(發布端):

import redis
pool = redis.ConnectionPool(host="127.0.0.1",port='6379')
rc = redis.Redis(connection_pool=pool)

while True:
    mes = str(input("請輸入要發布的內容:"))
    rc.publish('fm100.5', mes)

客戶端(訂閱端):

import redis
pool = redis.ConnectionPool(host="127.0.0.1",port='6379')
rc = redis.Redis(connection_pool=pool)

ps = rc.pubsub() #打開
ps.subscribe(['fm100.5']) #調頻
for item in ps.listen(): #監聽
    if item['type'] == 'message':
        data = item['data']
        print(data.decode('utf-8'))

微信公眾號

redis安裝,語法和Python連接


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石阡县| 尼勒克县| 平陆县| 沐川县| 安化县| 伊吾县| 延安市| 余庆县| 海南省| 象山县| 达尔| 普格县| 嘉兴市| 秦安县| 郓城县| 杂多县| 德兴市| 宁南县| 麦盖提县| 曲阜市| 西青区| 邵武市| 韶山市| 革吉县| 旬邑县| 五台县| 盘山县| 右玉县| 法库县| 大化| 平凉市| 加查县| 合山市| 石首市| 舒城县| 牙克石市| 双鸭山市| 承德县| 白朗县| 金溪县| 昌平区|