python安裝與使用redis的方法
本文實(shí)例講述了python安裝與使用redis的方法。分享給大家供大家參考,具體如下:
1、安裝
好吧,我承認(rèn)我只會最簡單的安裝:
sudo apt-get install redis-server
python 支持包: (其實(shí)就一個(gè)文件,搞過來就能用)
sudo apt-get install python-redis
2、配置
配置一下吧,默認(rèn)配置文件在: "/etc/redis/redis.conf"
綁定ip:
"bind 127.0.0.1″ -> "bind 10.0.1.7″
將磁盤同步改為 不同步或每秒同步,一直同步的話太慢了:
"appendfsync always" -> "appendfsync no"
檢查一下后臺執(zhí)行是否打開:
"daemonize yes"
或者其他你想設(shè)置的,例如:
連接超時(shí)時(shí)間 : "timeout 300″
運(yùn)行級別: "loglevel notice" (個(gè)人認(rèn)為默認(rèn)的這個(gè)就挺好,非出現(xiàn)大異常,不用改為debug )
3、使用
#! /usr/bin/env python
#coding=utf-8
import redis
print redis.__file__
# 連接,可選不同數(shù)據(jù)庫
r = redis.Redis(host='10.0.1.7', port=6379, db=1)
# -------------------------------------------
# 看信息
info = r.info()
for key in info:
print "%s: %s" % (key, info[key])
# 查數(shù)據(jù)庫大小
print '\ndbsize: %s' % r.dbsize()
# 看連接
print "ping %s" % r.ping()
# 選數(shù)據(jù)庫
#r.select(2)
# 移動數(shù)據(jù)去2數(shù)據(jù)庫
#r.move('a',2)
# 其他
#r.save('a') # 存數(shù)據(jù)
#r.lastsave('a') # 取最后一次save時(shí)間
#r.flush() #刷新
#r.shutdown() #關(guān)閉所有客戶端,停掉所有服務(wù),退出服務(wù)器
#
#--------------------------------------------
# 它有四種類型: string(key,value)、list(序列)、set(集合)、zset(有序集合,多了一個(gè)順序?qū)傩?
# 不知道你用的哪種類型?
# print r.get_type('a') #可以告訴你
# -------------------------------------------
# string操作
print '-'*20
# 塞數(shù)據(jù)
r['c1'] = 'bar'
#或者
r.set('c2','bar')
#這里有個(gè) getset屬性,如果為True 可以在存新數(shù)據(jù)時(shí)將上次存儲內(nèi)容同時(shí)搞出來
print 'getset:',r.getset('c2','jj')
#如果你想設(shè)置一個(gè)遞增的整數(shù) 每執(zhí)行一次它自加1:
print 'incr:',r.incr('a')
#如果你想設(shè)置一個(gè)遞減的整數(shù) please:
print 'decr:',r.decr('a')
# 取數(shù)據(jù)
print 'r['']:',r['c1']
#或者
print 'get:',r.get('a')
#或者 同時(shí)取一批
print 'mget:',r.mget('c1','c2')
#或者 同時(shí)取一批 它們的名字(key)很像 而恰好你又不想輸全部
print 'keys:',r.keys('c*')
#又或者 你只想隨機(jī)取一個(gè):
print 'randomkey:',r.randomkey()
# 查看一個(gè)數(shù)據(jù)有沒有 有 1 無0
print 'existes:',r.exists('a')
# 刪數(shù)據(jù) 1是刪除成功 0和None是沒這個(gè)東西
print 'delete:',r.delete('cc')
# 哦對了 它是支持批量操作的
print 'delete:',r.delete('c1','c2')
# 其他
r.rename('a','c3') #呃.改名
r.expire('c3',10) #讓數(shù)據(jù)10秒后過期 說實(shí)話我不太明白么意思
r.ttl('c3') #看剩余過期時(shí)間 不存在返回-1
#--------------------------------
# 序列(list)操作
print '-'*20
# 它是兩頭通的
# 塞入
r.push('b','gg')
r.push('b','hh')
# head 屬性控制是不是從另一頭塞
r.push('b','ee',head=True)
# 看長度
print 'list len:',r.llen('b')
# 列出一批出來
print 'list lrange:',r.lrange('b',start=0,end=-1)
# 取出一位
print 'list index 0:',r.lindex('b',0)
# 修剪列表
#若start 大于end,則將這個(gè)list清空
print 'list ltrim :',r.ltrim('b',start=0,end=3) #只留 從0到3四位
# 排序
# 這可是個(gè)大工程
#--------------------------------
# 集合(set)操作
# 塞數(shù)據(jù)
r.sadd('s', 'a')
# 判斷一個(gè)set長度為多少 不存在為0
r.scard('s')
# 判斷set中一個(gè)對象是否存在
r.sismember('s','a')
# 求交集
r.sadd('s2','a')
r.sinter('s1','s2')
#求交集并將結(jié)果賦值
r.sinterstore('s3','s1','s2')
# 看一個(gè)set對象
r.smembers('s3')
# 求并集
r.sunion('s1','s2')
# 阿 我想聰明的你已經(jīng)猜到了
#求并集 并將結(jié)果返回
r.sunionstore('ss','s1','s2','s3')
# 求不同
# 在s1中有,但在s2和s3中都沒有的數(shù)
r.sdiff('s1','s2','s3')
r.sdiffstore('s4','s1','s2')# 這個(gè)你懂的
# 取個(gè)隨機(jī)數(shù)
r.srandmember('s1')
#-------------------------------------
#zset 有序set
#'zadd', 'zcard', 'zincr', 'zrange', 'zrangebyscore', 'zrem', 'zscore'
# 分別對應(yīng)
#添加, 數(shù)量, 自加1,取數(shù)據(jù),按照積分(范圍)取數(shù)據(jù),刪除,取積分
# 我靠 你玩死我了 redis!
# 今天在實(shí)驗(yàn)中,我嘗試插入一條zset類型數(shù)據(jù):
r1.zset(u'www.liyi99.com','liwu',3)
# 插入成功
# 我繼續(xù)插入
r1.zset(u'www.liyi99,com',u'\u9001\u793c',5)
#報(bào)錯:
#UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
#這次插入的是禮物的中文詞 unicode編碼
#為什么會失敗那,這條數(shù)據(jù)是我從redis里面取出來然后沒做任何修改再插入的阿
#redis返回和接受的數(shù)據(jù)類型都是unicode編碼的阿
#好吧,我們再次插入試試
#再次插入
r1.zset('www.liyi99.com',u'\u9001\u793c',5)
#成功了
#插入
r1.zset('www.liyi99.com','禮物',5)
#依然成功,跟入redis.py 1024行
return self.send_command('ZADD %s %s %s\r\n%s\r\n' % (
key, score, len(member), member))
# 哦 萬惡的編碼轉(zhuǎn)換!
#不過取的時(shí)候,不論第一個(gè)是何種類型的數(shù)據(jù)都無關(guān)系
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
pandas把dataframe轉(zhuǎn)成Series,改變列中值的類型方法
下面小編就為大家分享一篇pandas把dataframe轉(zhuǎn)成Series,改變列中值的類型方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
在Python中獲取兩數(shù)相除的商和余數(shù)方法
今天小編就為大家分享一篇在Python中獲取兩數(shù)相除的商和余數(shù)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
numpy concatenate數(shù)組拼接方法示例介紹
這篇文章主要介紹了numpy concatenate數(shù)組拼接方法示例介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
如何在Python?中使用?join()?函數(shù)把列表拼接成一個(gè)字符串
這篇文章主要介紹了如何在Python?中使用?join()?函數(shù)把列表拼接成一個(gè)字符串,文章圍繞?join()?函數(shù)的相關(guān)資料展開詳細(xì)內(nèi)容,需要的小伙伴可以參考一下,希望對你有幫助2022-03-03
Python機(jī)器學(xué)習(xí)庫scikit-learn安裝與基本使用教程
這篇文章主要介紹了Python機(jī)器學(xué)習(xí)庫scikit-learn安裝與基本使用,較為詳細(xì)的介紹了機(jī)器學(xué)習(xí)庫scikit-learn的功能、原理、基本安裝與簡單使用方法,需要的朋友可以參考下2018-06-06
Python mplfinance庫繪制金融圖表實(shí)現(xiàn)數(shù)據(jù)可視化實(shí)例探究
mplfinance(Matplotlib Finance),它是基于Matplotlib的庫,專門用于創(chuàng)建金融圖表和交互式金融數(shù)據(jù)可視化,本文將深入介紹?mplfinance,包括其基本概念、功能特性以及如何使用示例代碼創(chuàng)建各種金融圖表2024-01-01

