python操作redis

redis作为内存数据库,常被用于应对实时响应的高并发缓存。


之前的推荐引擎程序将推荐结果写入mysql,全部写完后再发更新redis请求。一个java程序接收http响应然后开始更新redis,受限于mysql的IO,这一步速度极慢。准备改用python将推荐结果直接写入redis,然后同步写mysql做持久化保存。


推荐结果是一个列表,采用的是redis的序列操作。

import redis
import simplejson as sj

r=redis.Redis(host=redishost,port=6379,db=0)
# print r.dbsize()
# print sj.dumps({"assetId":"","assetname":"不二神探","assetpic":"","movieID":"180353","providerId":"","rank":"1"})
# print 'list index 0:',r.lindex('Topcontentlist_3_50047',0)
# print 'list lrange:',r.lrange('Topcontentlist_3_50047',start=0,end=-1)

strs = sj.dumps({"assetId":"","assetname":"不二神探","assetpic":"","movieID":"180353","providerId":"","rank":"1"})
strb = sj.dumps({"assetId":"","assetname":"二神探","assetpic":"","movieID":"1803","providerId":"","rank":"2"})

r.lpush('s',strs)
r.lpush('s',strb)
print 'list index 0:',r.lindex('s',0)
print 'list lrange:',r.lrange('s',start=0,end=-1)
print r.lpop('s')
print 'list lrange:',r.lrange('s',start=0,end=-1)
r.delete('s')


操作redis非常容易,连接上Redis后,选择db(默认是0)。

r.lpush将strs这个字符串推到's'这个key下;

r.lindex('s',0)是在's'这个key下查询第一个值;同理,r.lindex('s',1)是第二个值,没有值返回None;

r.lpop('s')是pop出第一个项;

r.lrange()批量查询;

r.delete()删除该Key-Value

list index 0: {"movieID": "1803", "assetId": "", "rank": "2", "assetpic": "", "providerId": "", "assetname": "\u4e8c\u795e\u63a2"}
list lrange: ['{"movieID": "1803", "assetId": "", "rank": "2", "assetpic": "", "providerId": "", "assetname": "\\u4e8c\\u795e\\u63a2"}', '{"movieID": "180353", "assetId": "", "rank": "1", "assetpic": "", "providerId": "", "assetname": "\\u4e0d\\u4e8c\\u795e\\u63a2"}']
{"movieID": "1803", "assetId": "", "rank": "2", "assetpic": "", "providerId": "", "assetname": "\u4e8c\u795e\u63a2"}
list lrange: ['{"movieID": "180353", "assetId": "", "rank": "1", "assetpic": "", "providerId": "", "assetname": "\\u4e0d\\u4e8c\\u795e\\u63a2"}']











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值