PHP和python操作Redis

Redis是一个Key/Value结构的存储系统,可以最终把数据持久化到硬盘上。在项目中,可以用它做一些小功能的数据存储部分,取代json文件、Xml文件等。

可以用一个key标识一个队列,进行入队和出队操作。

lpush(key,value)---------------将value放入key标识的队列

lpop(key)---------------------从key标识的队列中pop出一个值

lgetrange(key,0,-1)-------------取出key标识的队列中的所有值

如果希望使用php操作redis,要保证两点。1.机器上装有redis,并且将redis-server运行起来。2.php打开php_redis扩展

示例程序如下:

<?php 
class RedisTest{
	function __construct(){
		$this->keyName = "newAsset";
		$this->host = "127.0.0.1";
		$this->port = 6379;
	}
	
	function insertRedis($json){
		$redis = new Redis();
		$redis->connect($this->host,$this->port);
		$redis->lpush($this->keyName,$json);
	}
	
	function getFromRedis(){
		$redis = new Redis();
		$redis->connect($this->host,$this->port);
		$arr = $redis->lgetrange($this->keyName,0,-1);
		for($i=0;$i<count($arr);$i++){
			$arr[$i] = json_decode($arr[$i]);
			echo $i.':';
			echo $arr[$i]->id.','.$arr[$i]->src_ip.','.$arr[$i]->dst_ip.','.$arr[$i]->port;
			echo "\n";
		}
	}
}

$redisTest = new RedisTest();
$json = array('{"id":"1","src_ip":"1.1.1.1","dst_ip":"any","port":"8080"}',
'{"id":"2","src_ip":"1.1.1.1","dst_ip":"any","port":"8080"}');
foreach($json as $item){
	$redisTest->insertRedis($item);
}
echo "done";
$redisTest->getFromRedis();
?>

与上面的代码有异曲同工之妙的python代码如下:

#encoding=utf-8
import redis
import json
class RedisTest(object):
    def __init__(self):
        self.keyName = 'newAsset'
        self.host = '127.0.0.1'
        self.port = 6379
        self.re = redis.Redis(host=self.host,port=self.port)
    
    def insertRedis(self,jsonStr):
       self.re.lpush(self.keyName,jsonStr)
        
    def getFromRedis(self):
        arr = self.re.lrange(self.keyName,0,-1)
        for i in range(0,len(arr)):
            arr[i] = json.loads(arr[i])
            print arr[i]['id'],arr[i]['src_ip'],arr[i]['dst_ip'],arr[i]['port'],'\n'
            
if __name__=='__main__':
    redisTest = RedisTest()
#    json = ['{"id":"1","src_ip":"1.1.1.1","dst_ip":"any","port":"8080"}','{"id":"2","src_ip":"1.1.1.1","dst_ip":"any","port":"8080"}']
#    for item in json:
#        redisTest.insertRedis(item)
#        print 'done!\n'
    redisTest.getFromRedis()



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值