Python客户端
- 获取redis-py
- pip install redis
- easy_install redis
- 源码安装
wget https://github.com/andymccurdy/redis-py/archive/2.10.5.zip
unzip redis-2.10.5.zip
cd redis-2.10.5
sudo python setup.py install
- 基本使用
import redis
client = redis.StrictRedis(host='127.0.0.1', port=6379)
key = "hello"
setResult = client.set(key, "python-redis")
print(setResult)
value = client.get(key)
print("key:" + key + "value:" + value)
- string
client.set(“hello”, “world”)
#输出结果:True
client.get(“hello”)
# 输出结果:world
client.incr(“counter”)
# 输出结果:1 - hash
client.hset(“myhash”, “f1”, “v1”)
client.hset(“myhash”, “f2”, “v2”)
# 输出结果:{‘f1’:’v1’, ‘f2’:’v2’}
client.hgetall(“myhash”) - list
client.rpush(“mylist”, “1”)
client.rpush(“mylist”, “2”)
client.rpush(“mylist”, “3”)
# 输出结果:[‘1’, ‘2’, ‘3’]
client.lrange(“mylist”, 0, -1) - set
client.sadd(“myset”, “a”)
client.sadd(“myset”, “b”)
client.sadd(“myset”, “a”)
# 输出结果:set([‘a’, ‘b’]) - zset
client.zadd(“myzset”, “99”, “tom”)
client.zadd(“myzset”, “66”, “peter”)
client.zadd(“myzset”, “33”, “james”)
# 输出结果:[(‘james’, 33.0), (‘peter’, 66.0), (‘tom’, 99.0)]
client.zrange(“myzset”, 0, -1, withscores=True)
慢查询
- 生命周期
1 - 慢查询发生在第三阶段
2-客户端超时不一定慢查询,但慢查询是客户端超时的一个可能因素
pipeline
将N次命令打包在server计算N次,通过网络-次返回所有结果,redis命令的执行速度是微秒级的,而网络传输是耗时的关健
-注意每次携带的数据量
发布订阅
- 角色
发布者
订阅者
模型 - API
publish channel message # 发布消息,返回订阅者数量
subscribe [channel] # 订阅
unsubscribe [channel] # 取消订阅
psubscribe [pattern…] # 订阅模式
punsubscribe [pattern..] # 退订指定的模式
pubsub channels # 列出至少有一个订阅者的频道。
pubsub nyumsub [channel…] # 列出指定频道的订阅者数量
pubsub numpat # 列出被订阅模式的数量
Bitmap 位图
- API
setbit key offset value # 给位图指定的索引设置值
getbit key offset #获取位图指定索引的值
bitcount key [start end] #获取位图指定范围[start-end]位值为1的个数
bitop op destkey key [key…] #将多个位图的交集(and),并集(or),非(not), 异或(异或)操作并将结果保存在destkey中
bitpos key targetBit [start][end] # 计算位图指定范围第一个偏移量对应的值等于targetBit的位置
HyperLogLog
- API
pfadd key element [element…] # 添加元素
pfcount key [key…] # 计算独立总数
pfmerge deskey sourcekey [sourcekey…] # 合并
GEO
- API
geo key longitude latitude member [longitude latitude member …] # 增加地理位置信息
geopos key member [member…] # 获取地理位置信息
geodist key member1 member2 [unit] # 获取两个地理位置的距离
未完待续。。。