程序下載http://down.51cto.com/data/2440789:
“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個不僅審美在線,而且實用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無止境。
點擊客戶端進(jìn)行連接測試,出現(xiàn)下圖說明測試成功


語法:
redis的字符串操作
set(key,value,ex=None,px=None,nx=False,xx=False)
在redis中設(shè)置值,默認(rèn),不存在則創(chuàng)建,存在則修改
參數(shù):
ex:過期時間(秒)
px: 過期時間(毫秒)
nx:如果設(shè)置為True,則只有key不存在時。當(dāng)前set才會執(zhí)行
xx:如果設(shè)置為True,則只有key存在時,當(dāng)前set才會執(zhí)行
setnx(key,value)
設(shè)置值,只有key不存在時,執(zhí)行設(shè)置操作
setex(key,value,time)
設(shè)置值
參數(shù):
time:過期時間單位是秒
psetex(key,value,time)
設(shè)置值
參數(shù):
time:過期時間單位是毫秒
mset(*args,**kwargs)
批量設(shè)置值
如:
mset k1 v1 k2 v2
或者mset(k1='v1',k2='v2')
getset(key,value)
設(shè)置新值并返回原來的值
getrange(key,start,end)
獲取子序列(根據(jù)字節(jié)獲取,非字符)
參數(shù):
key: redis的key
start:起始位置(字節(jié))
end: 結(jié)束位置(字節(jié))
如:“張三”,0-3表示“張”
setrange(key,offset,value)
修改字符串內(nèi)容。從指定字符串索引開始向后替換(新值太長時,則向后添加)
參數(shù):
offset: 字符串的索引,字節(jié)(一個漢字三個字節(jié))
value: 要設(shè)置的值
setbit(key,offset,value)
對key對應(yīng)的二進(jìn)制表示的位進(jìn)行操作
參數(shù):
key: redis的key
offset:位的索引(將值變?yōu)槎M(jìn)制后再進(jìn)行索引)
value: 值只能是0或1
例:
如果在redis中有一個對應(yīng):n1 = "foo"
那么字符串“foo”的二進(jìn)制表示為:01100110 01101111 01101111
如果執(zhí)行setbit('n1',7,1)則就會將第七位設(shè)置為1
那么最終二進(jìn)制則變成 01100111 01101111 01101111 即“goo”
代碼實現(xiàn)
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統(tǒng)計在線人數(shù),并且看誰在線:
讓1代表在線。0代表不在線
offset代表用戶對應(yīng)的ID
如果用戶上線,則將該ID設(shè)置為1
用bitcount統(tǒng)計有多少個1,即有多少用戶在線
用getbit查看用戶是否在線
代碼實現(xiàn):
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對應(yīng)的值后追加
參數(shù):
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對應(yīng)的hash中獲取根據(jù)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對應(yīng)的hash中所有key的值
hvals(key)
獲取key對應(yīng)的hash中所有的value值
hexists key field
檢查key對應(yīng)的hash是否存在當(dāng)前傳入的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對應(yīng)的list中添加元素,只對key已經(jīng)存在時,值添加到列表的最左邊
rpushx key value
在key對應(yīng)的list中添加元素,只對key已經(jīng)存在時,值添加到列表的最右邊
llen key
key對應(yīng)的list元素個數(shù)
LINSERT key BEFORE|AFTER pivot value
在key對應(yīng)的列表的某一個值前或后插入一個新值
參數(shù):
key: redis的key
BEFORE|AFTER: 在什么或者后
privot: 標(biāo)桿值,即在他前后插入數(shù)據(jù)
value: 要插入的數(shù)據(jù)
lset key index value
對key對應(yīng)的list中的某一個索引位置進(jìn)行重新賦值
參數(shù):
key: redis的key值
index:list的索引位置
value:要設(shè)置的值
lrem key count value
在key對應(yīng)的list中刪除指定的值
參數(shù):
key:redis的key
value:要刪除的值
count:
count=0: 刪除列表中所有的指定的值
count=2: 從前向后,刪除兩個
count=-2:從后向前,刪除兩個
lpop key
在key對應(yīng)的列表的左側(cè)獲取第一個元素并在列表中刪除,返回值則是第一個元素。
lindex key index
在key中對應(yīng)的列表中根據(jù)索引獲取列表元素
LRANGE key start stop
在key對應(yīng)的列表分片獲取數(shù)據(jù)
參數(shù):
key: redis的key
start:索引的起始位置
end: 索引的結(jié)束位置
LTRIM key start stop
在key對應(yīng)的列表中移除沒有在start stop索引之間的值
參數(shù):
key:redis的key
start:索引的起始位置
stop:索引的結(jié)束位置
RPOPLPUSH source destination
從一個表中取出最右邊的元素,同時將其添加至另一個列表的最左邊
參數(shù):
source: 要取出數(shù)據(jù)的列表的key
destination:要添加數(shù)據(jù)的列表的key
BRPOPLPUSH source destination timeout
從一個列表的右側(cè)移除一個元素并將其添加到另一個列表的左側(cè)
參數(shù):
source:取出并移除元素的列表對應(yīng)的key
destination:要插入元素的列表對應(yīng)的key
timeout:當(dāng)source對應(yīng)的列表中沒有數(shù)據(jù)時,阻塞等待其數(shù)據(jù)的超時時間(秒),0表示永遠(yuǎn)堵塞
集合:
sadd key member [member ...]
key對應(yīng)的集合中添加元素(無重復(fù),無序)
如:
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對應(yīng)的集合中的元素個數(shù)
sdiff key [key ...]
在第一個key對應(yīng)的集合中且不在其他key對應(yīng)的集合中的元素
sdiffstore destination key [key ...]
在第一個key對應(yīng)的集合中且不在其他key對應(yīng)的集合中的元素,把他添加到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
移除并返回集合中的一個隨機(jī)元素
SRANDMEMBER key [count]
返回集合中一個或多個隨機(jī)數(shù)
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]
向有序集合添加一個或多個成員,或者更新已存在成員的分?jǐn)?shù)
ZCARD key
獲取有序集合的成員數(shù)
ZCOUNT key min max
計算在有序集合中指定區(qū)間分?jǐn)?shù)的成員數(shù)
ZINCRBY key increment member
有序集合中對指定成員的分?jǐn)?shù)加上增量 increment
ZINTERSTORE destination numkeys key [key ...]
計算給定的一個或多個有序集的交集并將結(jié)果集存儲在新的有序集合 key 中
ZLEXCOUNT key min max
在有序集合中計算指定字典區(qū)間內(nèi)成員數(shù)量
ZRANGE key start stop [WITHSCORES]
通過索引區(qū)間返回有序集合成指定區(qū)間內(nèi)的成員
ZRANGEBYLEX key min max [LIMIT offset count]
通過字典區(qū)間返回有序集合的成員
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
通過分?jǐn)?shù)返回有序集合指定區(qū)間內(nèi)的成員
ZRANK key member
返回有序集合中指定成員的索引
ZREM key member [member ...]
移除有序集合中的一個或多個成員
ZREMRANGEBYLEX key min max
移除有序集合中給定的字典區(qū)間的所有成員
ZREMRANGEBYRANK key start stop
移除有序集合中給定的排名區(qū)間的所有成員
ZREMRANGEBYSCORE key min max
移除有序集合中給定的分?jǐn)?shù)區(qū)間的所有成員
ZREVRANGE key start stop [WITHSCORES]
返回有序集中指定區(qū)間內(nèi)的成員,通過索引,分?jǐn)?shù)從高到底
ZREVRANGEBYSCORE key max min [WITHSCORES]
返回有序集中指定分?jǐn)?shù)區(qū)間內(nèi)的成員,分?jǐn)?shù)從高到低排序
ZREVRANK key member
返回有序集合中指定成員的排名,有序集成員按分?jǐn)?shù)值遞減(從大到小)排序
ZSCORE key member
返回有序集中,成員的分?jǐn)?shù)值
ZUNIONSTORE destination numkeys key [key ...]
計算給定的一個或多個有序集的并集,并存儲在新的 key 中
ZSCAN key cursor [MATCH pattern] [COUNT count]
迭代有序集合中的元素(包括元素成員和元素分值) 安裝python 模塊
pip3 install redis
Python 線程池連接redis

普通連接redis

管道:一次可以執(zhí)行多個命令
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()實現(xiàn)訂閱和發(fā)布
服務(wù)端(發(fā)布端):
import redis
pool = redis.ConnectionPool(host="127.0.0.1",port='6379')
rc = redis.Redis(connection_pool=pool)
while True:
mes = str(input("請輸入要發(fā)布的內(nèi)容:"))
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']) #調(diào)頻
for item in ps.listen(): #監(jiān)聽
if item['type'] == 'message':
data = item['data']
print(data.decode('utf-8'))微信公眾號

網(wǎng)站名稱:redis安裝,語法和Python連接
標(biāo)題網(wǎng)址:http://www.chinadenli.net/article34/piegse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、品牌網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、網(wǎng)站制作、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)