设为首页 收藏本站
查看: 895|回复: 0

[经验分享] Redis命令详解

[复制链接]

尚未签到

发表于 2015-7-20 12:14:47 | 显示全部楼层 |阅读模式
  Redis 提供了很多丰富的命令,最常见的如get ,set , multiple-get . multiple-set 命令
  另外提供了list操作命令 ,list 实际上是一个堆栈 提供lpush 和lpop方法
  Set 为集合操作 可以进行交并等运算
  ZSet为有序集合,传入值的时候可以传入一个权重 ,以控制此值在整个set中的位置   Pipeline 维持一个事务, 当没有执行excute时, 此事务内的所有操作都没有被真正提交
  具体使用见代码. 调用client.info()的时候出错 , 怀疑可能是client端的bug


#Returns the number of keys in the current database
print "---Key Size---"
print str(client.dbsize())
print "---Key Size---"
#Returns the Redis server info
'''
print "---info---"
infoDict = client.info()
myIter = infoDict.iteritems()
while True :
    try :
        item_tuple = myIter.next()
        print repr(item_tuple)
    except StopIteration :
        break
print "---info---"
'''
#Get & Set
print "---Get & Set---"
client.set("demo", "demo_value")
print str(client.get("demo"))
print "---Get & Set---"
#Append
print "---Append---"
client.append("demo", "_append_value");
print str(client.get("demo"))
print "---Append---"
#incr
print "---incr---"
client.set("count", 0)
print str(client.get("count"))
client.incr("count", 1)
print str(client.get("count"))
client.incr("count", 1)
print str(client.get("count"))
print "---incr---"
#decr
print "---decr---"
client.decr("count", 1)
print str(client.get("count"))
print "---decr---"
#List
print "---List---"
client.lpush("list", "one");
client.lpush("list", "two");
print ("length:" + str(client.llen("list")))
print str(client.lrange("list", 0, -1))
print str("pop:" +client.lpop("list"))
print str(client.lrange("list", 0, -1))
client.ltrim("list", 2, 1)
print "---List---"
#Set
print "---Set---"
client.sadd("set_1", "1-one");
client.sadd("set_1", "1-two");
client.sadd("set_1", "common");
print ("length:" + str(client.scard("set_1")))
print str(client.smembers('set_1') )
client.srem("set_1", "1-two")
print str(client.smembers('set_1') )
client.sadd("set_2", "2-one");
client.sadd("set_2", "2-two");
client.sadd("set_2", "common");
print str(client.smembers('set_2') )
set = []
set.append("set_1")
print str(client.sinter(set,"set_2"))
print str(client.sunion(set,"set_2"))
client.sinterstore("set_3" ,set,"set_2")
print "inter :" + str(client.smembers("set_3"))
client.sunionstore("set_4" ,set,"set_2")
print "union :" + str(client.smembers("set_4"))
diffSet = []
diffSet.append("set_1")
diffSet.append("set_2")
print str(client.smembers('set_1') )
print str(client.smembers('set_2') )
print "diff :" + str(client.sdiff(diffSet))
client.sdiffstore("set_5", diffSet);
print "diff :" + str(client.smembers('set_5'))
print "---Set---"
print "---zset---"
client.zadd("zset", "three", 3);
client.zadd("zset", "one", 1);
client.zadd("zset", "two", 2);
print str(client.zrange('zset', 0, -1, 0))
print str(client.zrangebyscore('zset', 1, 2))
print "---zset---"
print "---transactions---"
transactions = client.pipeline()
transactions.sadd("transactions_set", "valueone");
transactions.sadd("transactions_set", "valuetwo");
print "transactions show :" + str(transactions.smembers("transactions_set"))
print "client show :" + str(client.smembers("transactions_set"))
transactions.reset()
print "---after rollback---"
print "transactions show :" + str(transactions.smembers("transactions_set"))
print "client show :" + str(client.smembers("transactions_set"))
print "---after rollback---"
transactions.sadd("transactions_set", "valueone");
transactions.sadd("transactions_set", "valuetwo");
transactions.execute()
print "---after execute---"
print "transactions show :" + str(transactions.smembers("transactions_set"))
print "client show :" + str(client.smembers("transactions_set"))
print "---after execute---"
print "---transactions---"  输出如下
  ---Key Size---
1237750
---Key Size---
---Get & Set---
demo_value
---Get & Set---
---Append---
demo_value_append_value
---Append---
---incr---
0
1
2
---incr---
---decr---
1
---decr---
---List---
length:2
['two', 'one']
pop:two
['one']
---List---
---Set---
length:4
set(['one', '1-one', '1-two', 'common'])
set(['1-one', 'common', 'one'])
set(['2-two', '2-one', 'common'])
set(['common'])
set(['2-two', '1-one', '2-one', 'common', 'one'])
inter :set(['common'])
union :set(['2-two', '1-one', '2-one', 'common', 'one'])
set(['1-one', 'common', 'one'])
set(['2-two', '2-one', 'common'])
diff :set(['1-one', 'one'])
diff :set(['1-one', 'one'])
---Set---
---zset---
['one', 'two', 'three']
['one', 'two']
---zset---
---transactions---
transactions show :
client show :set([])
---after rollback---
transactions show :
client show :set([])
---after rollback---
---after execute---
transactions show :
client show :set(['valueone', 'valuetwo'])
---after execute---
---transactions---
  
  另外,Redis还提供了publish/subscribe 机制
  发布端代码:


print "---subscribe---"
client.publish("test channel", "publish message")
print "---subscribe---"  订阅端代码:


client.subscribe("test channel")
for m in client.listen():
    print(m)  先运行订阅端进行监听,接着运行发布端发布消息 ,打印出如下信息
  {'pattern': None, 'type': 'message', 'channel': 'test channel', 'data': 'publish message'}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-88696-1-1.html 上篇帖子: Redis(一) 介绍 下篇帖子: Redis 查询
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表