2018年5月17日筆記
- python操作redis
set操作
sadd(name, values) 增加
scard(name) 獲取
spop(name) 刪除並返回set中的一個隨機元素
srem(name, value) 刪除set中的一個指定元素
sunion(keys) 返回指定集合的並集
sinter(keys) 返回指定集合的交集
hash操作
hset(name, key, value) 設置單個元素
hmset(name, {"k1": "v1", "k2": "v2"} 設置多個元素
hget(name, key) 獲取單個元素
hmget(name, keys) 獲取多個元素
hkeys(name) 獲取name對應的所有key
hvalues(name) 獲取name對應的所有value
hgetall(name) 返回指定name對應的keys和values (返回值長度是哈希表大小的2倍)
hexists(name, key) 判斷key是否存在
hdel(name, keys) 刪除key
hlen(name) 獲取長度(name中key的個數)
!!!重點掌握 string 和 hash 的操作 !!!
適用於所有類型(string/ list/ set/ zset/ hash)的常用操作
r.keys() 查看所有key
r.delete(names) 刪除keys
r.exists(name) 判斷是否存在
r.rename(src, dst) 替換key
r.expire(name, time) 設置超時時間,超時後會刪除對應的key
r.type(name) 查看屬於哪種redis數據類型
r.move(name, db) 將name從原來db移動至指定db下
r.flushall() 刪除所有
- 安裝memcached
cd /usr/local/src
wget http://memcached.org/latest
tar -zxvf memcached-1.x.x.tar.gz
cd memcached-1.x.x
./configure && make && make test && make install
客戶端
pip install python-memcached
啟動memcached
memcached -d -m 10 -u root -l 127.0.0.1 -p 12000 -c 256 -P /tmp/memcached.pid
參數說明
參數 | 描述 |
---|---|
-d |
是啟動一個守護進程 |
-m |
是分配給Memcache使用的內存數量,單位是MB |
-u |
是運行Memcache的用戶 |
-l |
是監聽的服務器IP地址 |
-p |
是設置Memcache監聽的端口,最好是1024以上的端口 |
-c |
選項是最大運行的並發連接數,默認是1024,按照你服務器的負載量來設定 |
-P |
是設置保存Memcache的pid文件 |
- memcached天生支持集群
python-memcached模塊原生支持集群操作,其原理是在內存維護一個主機列表,且集群中主機的權重值和主機在列表中出現的次數成正比
主機 權重
1.1.1.1 1
1.1.1.2 2
1.1.1.3 1
# 那麽在內存中主機列表為:
host_list = ["1.1.1.1", "1.1.1.2", "1.1.1.2", "1.1.1.3"]
- python操作memcached
set(key, value)
get(key)
replace(key, new_key)
set = add + replace
delete(key)
get_multi([k1, k2, k3])
append(k, appendvalue)
prepend(k, prependvalue)
stats
2018年5月17日筆記