1. 如何實現python的mysql連接池並加入緩存過期
import MySQLdb
import time
import string
import redis
class PooledConnection:
#構建連接池實例
def __init__(self, maxconnections, connstr,dbtype):
from Queue import Queue
self._pool = Queue(maxconnections) # create the queue
self.connstr = connstr
self.dbtype=dbtype
self.maxconnections=maxconnections
#根據你給數目來創建鏈接,並且寫入剛才創建的隊列裡面。
try:
for i in range(maxconnections):
self.fillConnection(self.CreateConnection(connstr,dbtype))
except Exception,e:
raise e
def fillConnection(self,conn):
try:
self._pool.put(conn)
except Exception,e:
raise "fillConnection error:"+str(e)
def returnConnection(self, conn):
try:
self._pool.put(conn)
except Exception,e:
raise "returnConnection error:"+str(e)
def getConnection(self):
try:
return self._pool.get()
except Exception,e:
raise "getConnection error:"+str(e)
def ColseConnection(self,conn):
try:
self._pool.get().close()
self.fillConnection(self.CreateConnection(connstr,dbtype))
except Exception,e:
raise "CloseConnection error:"+str(e)
def CreateConnection(self,connstr,dbtype):
if dbtype=='xxx':
pass
elif dbtype=='mysql':
try:
db_conn = connstr.split("#");
#conndb=MySQLdb.connect(db=conf.mydb,host=conf.dbip,user=conf.myuser,passwd=conf.mypasswd);
conndb=MySQLdb.connect(user=db_conn[0],passwd=db_conn[1],host=db_conn[2],port=string.atoi(db_conn[3]),db=db_conn[4]);
conndb.clientinfo = 'datasync connection pool from datasync.py';
conndb.ping();
except Exception, e:
raise 'conn targetdb datasource Excepts,%s!!!(%s).'%(db_conn[2],str(e))
return None
#mysql如下創建連接池:
connstring="xiaorui.cc#xiaoru.cc#xiaorui.cc#3306#dbname";
mysqlpool=PooledConnection(10,connstring,"mysql");
#獲取連接:
mysqlpool.getConnection()
2. 如何給輕量python程序,腳本製作緩存
1, 首先下載並安裝Python 2.7 2, 寫一個簡單地Python源文件,比如test.py,內容如下: import sys, os def test(arg1, arg2): print "begin test..." fun1('1', '2') print arg1 print arg2 def fun1(arg1, arg2): print arg1 print arg2 if __name...
3. 如何實現python的mysql連接池並加入緩存過期
這個問題相當好解決埃你在插數據的時候,是不是定義了ID,讓ID自動增加就可以實現添加而不是覆蓋。 設計資料庫表的時候,第一個欄位ID讓它自增方式。在python寫insert語句時,勉強將你自己定義的ID值放進去。就是insert table () values() 前面...
4. Python如何訪問網站不緩存
1、運行時加-u參數,如#python3-utest.py>>test.log&用man查看python的-u參數。
強制stdin,stdout和stderr完全不緩沖。
Python由荷蘭數學和計算機科學研究學會的吉多·范羅蘇姆於1990年代初設計,作為一門叫做ABC語言的替代品。
5. python有緩存模塊嗎
從Python 3.2開始,可以使用functools庫中的裝飾器@lru_cache。這是最近使用過的緩存,所以其中的項目沒有到期時間,但作為快速入侵,它非常有用。
from functools import lru_cache
@lru_cache(maxsize=256)def f(x):
return x*xfor x in range(20):
print f(x)for x in range(20):
print f(x)
6. 如何在python中使用時間限制進行緩存
可以試試裝飾器
defcache(fn=None,time_to_live=3600*24):#oneDAYdefault(orwhatever)
ifnotfn:returnfunctools.partial(cache,time_to_live=time_to_live)
my_cache={}
def_inner_fn(*args,**kwargs)
kws=sorted(kwargs.items())#inpython3.6+youdontneedsorted
key=tuple(args)+tuple(kw)
ifkeynotinmy_cacheortime.time()>my_cache[key]['expires']:
my_cache[key]={"value":fn(*args,**kwargs),"expires":time.time()+time_to_live}
returnmy_cache[key]
return__inner_fn
@cache(time_to_live=3600)#anhour
defmy_sqrt(x):
returnx**0.5@cache(time_to_live=60*30)#30mins
defget_new_emails():
returnmy_stmp.get_email_count()
7. 如何實現python的mysql連接池並加入緩存過期
如何實現python的mysql連接池並加入緩存過期
conn本來 就已經被你定義成了 函數, conn.ping()當然不存在了。而且你要的資料庫連接c,還被手動關閉了。我覺得有兩點 1. 按照你這個腳本的情況,你用一次,就新建一個資料庫連接問題應該不大。 2. 要保持使用一個連接的話。把c作全局變數 c=MyS.
8. window 下 濤思客戶端的安裝配置 Python程序如何連接上濤思客戶端
立即開始
快捷安裝
TDengine 包括服務端、客戶端和周邊生態工具軟體,目前 2.0 版服務端僅在 Linux 系統上安裝和運行,後續將支持 Windows、macOS 等系統。客戶端可以在 Windows 或 Linux 上安裝和運行。在任何操作系統上的應用都可以使用 RESTful 介面連接服務端程序 taosd,其中 2.4 之後版本默認使用單獨運行的獨立組件 taosAdapter 提供 http 服務和更多數據寫入方式。taosAdapter 需要手動啟動。 之前版本 TDengine 服務端,以及所有服務端lite版,均使用內置 http 服務。
TDengine 支持 X64/ARM64/MIPS64/Alpha64 硬體平台,後續將支持 ARM32、RISC-V 等 CPU 架構。
通過 Docker 容器安裝
docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp tdengine/tdengine
詳細操作方法請參照通過 Docker 快速體驗 TDengine。
註:暫時不建議生產環境採用 Docker 來部署 TDengine 的客戶端或服務端,但在開發環境下或初次嘗試時,使用 Docker 方式部署是十分方便的。特別是,利用 Docker,可以方便地在 macOS 和 Windows 環境下嘗試 TDengine。
從 2.4.0.10 開始,除 taosd 以外,Docker 鏡像還包含:taos、taosAdapter、taosmp、taosBenchmark、TDinsight 安裝腳本和示例代碼。啟動 Docker 容器時,將同時啟動 taosAdapter 和 taosd,實現對 RESTful 的支持。
通過安裝包安裝
TDengine 的安裝非常簡單,從下載到安裝成功僅僅只要幾秒鍾。
為方便使用,從 2.4.0.10 開始,標準的服務端安裝包包含了 taos、taosd、taosAdapter、taosmp、taosBenchmark、TDinsight 安裝腳本和示例代碼;如果您只需要用到服務端程序和客戶端連接的 C/C++ 語言支持,也可以僅下載 lite 版本的安裝包。
在安裝包格式上,我們提供 tar.gz, rpm 和 deb 格式,為企業客戶提供 tar.gz 格式安裝包,以方便在特定操作系統上使用。需要注意的是,rpm 和 deb 包不含 taosmp、taosBenchmark 和 TDinsight 安裝腳本,這些工具需要通過安裝 taosTool 包獲得。
發布版本包括穩定版和 Beta 版,Beta 版含有更多新功能。正式上線或測試建議安裝穩定版。您可以根據需要選擇下載:
TDengine-server-2.4.0.12-Linux-x64.rpm (14.5 M)
TDengine-server-2.4.0.12-Linux-x64.deb (12.8 M)
TDengine-server-2.4.0.12-Linux-x64.tar.gz (15.5 M)
TDengine-server-2.4.0.12-Linux-x64-Lite.tar.gz (3.4 M)
TDengine-server-2.3.5.0-beta-Linux-x64-Lite.tar.gz (3 M)
TDengine-server-2.3.5.0-beta-Linux-x64.rpm (18.4 M)
TDengine-server-2.3.5.0-beta-Linux-x64.deb (16.8 M)
TDengine-server-2.3.5.0-beta-Linux-x64.tar.gz (18.8 M)
具體的安裝方法,請參見TDengine 多種安裝包的安裝和卸載以及視頻教程。
請點擊這里查看 release notes。
使用 apt-get 安裝
如果使用 Debian 或 Ubuntu 系統,也可以使用 apt-get 工具從官方倉庫安裝,設置方法為:
僅安裝客戶端
如果客戶端和服務端運行在不同的電腦上,可以單獨安裝客戶端。下載時請注意,所選擇的客戶端版本號應該和在上面下載的服務端版本號嚴格匹配。Linux 和 Windows 安裝包如下(其中 lite 版本的安裝包僅帶有 C/C++ 語言的連接支持,而標准版本的安裝包還包含和示例代碼):
TDengine-client-2.4.0.12-Linux-x64.tar.gz (8.2 M)
TDengine-client-2.4.0.12-Windows-x64.exe (9 M)
TDengine-client-2.4.0.12-Windows-x86.exe (9 M)
TDengine-client-2.4.0.12-Linux-x64-Lite.tar.gz (3.1 M)
TDengine-client-2.3.5.0-beta-Linux-x64-Lite.tar.gz (2.7 M)
TDengine-client-2.3.5.0-beta-Linux-x64.tar.gz (7.6 M)
TDengine-client-2.3.5.0-beta-Windows-x64.exe (8.9 M)
TDengine-client-2.3.5.0-beta-Windows-x86.exe (8.8 M)
通過源碼安裝
如果您希望對 TDengine 貢獻代碼或對內部實現感興趣,請參考我們的TDengine GitHub 主頁下載源碼構建和安裝.
下載其他組件、最新 Beta 版及之前版本的安裝包,請點擊這里
輕松啟動
安裝成功後,用戶可使用systemctl命令來啟動 TDengine 的服務進程。
檢查服務是否正常工作:
如果 TDengine 服務正常工作,那麼您可以通過 TDengine 的命令行程序taos來訪問並體驗 TDengine。
注意:
systemctl 命令需要root許可權來運行,如果您非root用戶,請在命令前添加 sudo 。
為更好的獲得產品反饋,改善產品,TDengine 會採集基本的使用信息,但您可以修改系統配置文件 taos.cfg 里的配置參數 telemetryReporting,將其設為 0,就可將其關閉。
TDengine 採用 FQDN(一般就是 hostname)作為節點的 ID,為保證正常運行,需要給運行 taosd 的伺服器配置好 hostname,在客戶端應用運行的機器配置好 DNS 服務或 hosts 文件,保證 FQDN 能夠解析。
systemctl stop taosd指令在執行後並不會馬上停止 TDengine 服務,而是會等待系統中必要的落盤工作正常完成。在數據量很大的情況下,這可能會消耗較長時間。
TDengine 支持在使用systemd做進程服務管理的 Linux 系統上安裝,用which systemctl命令來檢測系統中是否存在systemd包:
如果系統中不支持systemd,也可以用手動運行/usr/local/taos/bin/taosd方式啟動 TDengine 服務。
使用 TDengine 客戶端程序
執行 TDengine 客戶端程序,您只要在 Linux 終端執行taos即可。
如果連接服務成功,將會列印出歡迎消息和版本信息。如果失敗,則會列印錯誤消息出來(請參考FAQ來解決終端連接服務端失敗的問題)。客戶端的提示符號如下:
在 TDengine 客戶端中,用戶可以通過 SQL 命令來創建/刪除資料庫、表等,並進行插入查詢操作。在終端中運行的 SQL 語句需要以分號結束來運行。示例:
除執行 SQL 語句外,系統管理員還可以從 TDengine 客戶端進行檢查系統運行狀態、添加刪除用戶賬號等操作。
命令行參數
您可通過配置命令行參數來改變 TDengine 客戶端的行為。以下為常用的幾個命令行參數:
-c, --config-dir: 指定配置文件目錄,默認為/etc/taos
-h, --host: 指定服務的 FQDN 地址或 IP 地址,默認為連接本地服務
-s, --commands: 在不進入終端的情況下運行 TDengine 命令
-u, --user: 連接 TDengine 服務端的用戶名,預設為 root
-p, --password: 連接 TDengine 服務端的密碼,預設為 taosdata
-?, --help: 列印出所有命令行參數
示例:
運行 SQL 命令腳本
TDengine 終端可以通過SOURCE命令來運行 SQL 命令腳本。
taos shell 小技巧
可以使用上下游標鍵查看歷史輸入的指令
修改用戶密碼:在 shell 中使用ALTER USER命令,預設密碼為 taosdata
Ctrl+C 中止正在進行中的查詢
執行RESET QUERY CACHE可清除本地緩存的表 schema
批量執行 SQL 語句。可以將一系列的 shell 命令(以英文 ; 結尾,每個 SQL 語句為一行)按行存放在文件里,在 shell 里執行命令SOURCE <file-name>自動執行該文件里所有的 SQL 語句
輸入 q 回車,退出 taos shell
TDengine 極速體驗
使用 taosBenchmark 體驗寫入速度
啟動 TDengine 的服務,在 Linux 終端執行taosBenchmark(曾命名為 taosdemo)。taosBenchmark 在 TDengine 2.4.0.7 和之前發布版本在 taosTools 安裝包中發布提供,在後續版本中 taosBenchmark 將在 TDengine 標准安裝包中發布。
該命令將在資料庫 test 下面自動創建一張超級表 meters,該超級表下有 1 萬張表,表名為 "d0" 到 "d9999",每張表有 1 萬條記錄,每條記錄有 (ts, current, voltage, phase) 四個欄位,時間戳從 "2017-07-14 10:40:00 000" 到 "2017-07-14 10:40:09 999",每張表帶有標簽 location 和 groupId,groupId 被設置為 1 到 10, location 被設置為 "beijing" 或者 "shanghai"。
這條命令很快完成 1 億條記錄的插入。具體時間取決於硬體性能,即使在一台普通的 PC 伺服器往往也僅需十幾秒。
taosBenchmark 詳細功能列表
taosBenchmark 命令本身帶有很多選項,配置表的數目、記錄條數等等,請執行taosBenchmark --help詳細列出。您可以設置不同參數進行體驗。
taosBenchmark 詳細使用方法請參照如何使用 taosBenchmark 進行性能測試。
使用 taos shell 體驗查詢速度
9. python從資料庫讀取數據後會緩存數據嗎
python並不具有數據存儲的功能,所以的查詢結果都會在內存中保留,程序執行完畢數據就消失,不會有緩存的問題。