redis 相关操作

<?php 

class RedisTool extends CI_Controller {

	public $redis;	

	public function __construct(){ 
		parent::__construct(); 
		$this->load->database(); 
		$this->redis = new Redis(); 
		$this->redis->connect("127.0.0.1", 6379); 
	} 

	public function index(){
		var_dump($this->redis);
		exit;
	}
	
	//Redis KEY 相关操作
	public function delkey(){
		$key = $_GET['key'];
		$r = $this->redis->del($key);
		var_dump($r);
		exit;
	}

	public function existskey(){
		$key = $_GET['key'];
		$r = $this->redis->exists($key);
		var_dump($r);
		exit;
	}
	/**
	 * 给 KEY 设置生存时间,单位为秒,当 KEY 过期时会被自动删除
	 */
	public function expirekey(){
		$key = $_GET['key'];
		$r = $this->redis->expire($key, 60);
		var_dump($r);
		exit;
	}
	/**
         * 给 KEY 设置生存时间,设置成时间戳 
	 */
	public function expireatkey(){
		$key = $_GET['key'];
		$expire = time() + 60;
		$r = $this->redis->expireat($key, $expire);
		var_dump($r);
		exit;
	}

	/**
	 * 查找所有符合匹配模式 pattern 的 key,例:KEYS *, KEYS h?llo
	 */
	public function keyskey(){
		$r = $this->redis->keys('*');
		var_dump($r);
		exit;
	}
	//给 KEY 移除生存时间
	public function persistkey(){
		$key = $_GET['key'];
		$r = $this->redis->persist($key);
		var_dump($r);
		exit;
	}

	/**
	 * 给指定的 列表、集合、有序集合 中的key排序
	 * sort key | sort key desc
	 * 第二个参数为数组,包括:sort => 'desc', 'limit' => array(0,3)
	 */
	public function sortkey(){
		$key = $_GET['key'];
		$r = $this->redis->sort($key, array('sort' => 'desc', 'limit' => array(0,3)));
		print_r($r);
		exit;
	}

	//===================== String 字符串类型 相关操作======================================
	/**
	 * set key val [EX seconds] [PX milliseconds] 可以通过参数设置生存时间 
	 */
	public function setstr(){
		$key = $_GET['key'];
		$value = $_GET['value'];
		$r = $this->redis->set($key, $value, array('EX' => 600));
		var_dump($r);
		exit;
	}

	public function getstr(){
		$key = $_GET['key'];
		$r = $this->redis->get($key);
		var_dump($r);
		exit;
	}
	//给 key 追加字符串
	public function appendstr(){
		$key = $_GET['key'];
		$val = $_GET['value'];
		$r = $this->redis->append($key, $val);
		var_dump($r);
		exit;
	}
	//自减操作 decr, 返回自减后的数值
	public function decrstr(){
		$key = $_GET['key'];
		$r = $this->redis->decr($key);
		var_dump($r);
		exit;
	} 
	//key的值减去val
	public function decrbystr(){
		$key = $_GET['key'];
		$val = $_GET['value'];
		$r = $this->redis->decrby($key, $val);
		var_dump($r);
		exit;
	}

	public function incrstr(){
		$key = $_GET['key'];
		$r = $this->redis->incr($key);
		var_dump($r);
		exit;
	}

	public function incrbystr(){
		$key = $_GET['key'];
		$val = $_GET['value'];
		$r = $this->redis->incrby($key, $val);
		var_dump($r);
		exit;
	}

	public function mgetstr(){
		$keyarr = array('name','age');
		$r = $this->redis->mget($keyarr);
		var_dump($r);
		exit;
	}

	public function msetstr(){
		$arr = array(
			'dog' => 'dudu',
			'cat' => 'huar',
			'book' => 'xiaoshuo',
		);
		$r = $this->redis->mset($arr);
		var_dump($r);
		exit;
	}
	// 获取 key 的值的长度
	public function strlenstr(){
		$key = $_GET['key'];
		$r = $this->redis->strlen($key);
		var_dump($r);
		exit;
	}


	// hash 相关操作 ==============================================================================
	public function hsethash(){
		$key = $_GET['key'];
		$valarr = array(
			'name' => 'mufan',
			'age' => '28',
			'work' => 'phper',
		);
		foreach($valarr as $k => $v){
			$r = $this->redis->hset($key, $k, $v);
		}
		//$r = $this->redis->hset($key, $valarr);
		var_dump($r);
		exit;
	}
	//获取一个hash对象中的所有键值对,返回一个数组
	public function hgetallhash(){
		$key = $_GET['key'];
		$r = $this->redis->hgetall($key);
		print_r($r);
		exit;
	}

	public function hgethash(){
		$key = $_GET['key'];
		$field = $_GET['field'];
		$r = $this->redis->hget($key, $field);
		var_dump($r);
		exit;
	}

	public function hexistshash(){
		$key = $_GET['key'];
		$field = $_GET['field'];
		$r = $this->redis->hexists($key, $field);
		var_dump($r);
		exit;
	}

	public function hdelhash(){
		$key = $_GET['key'];
		$fieldarr = array('name','age');
		foreach($fieldarr as $v){
			$r = $this->redis->hdel($key, $v);
		}
		var_dump($r);
		exit;
	}


	public function hincrbyhash(){
		$key = $_GET['key'];
		$field = $_GET['field'];
		$val = $_GET['value'];
		$r = $this->redis->hincrby($key, $field, $val);
		var_dump($r);
		exit;
	}

	public function hkeyshash(){
		$key = $_GET['key'];
		$r = $this->redis->hkeys($key);
		print_r($r);
		exit;
	}

	public function hvalshash(){
		$key = $_GET['key'];
		$r = $this->redis->hvals($key);
		print_r($r);
		exit;
	}

	public function hlenhash(){
		$key = $_GET['key'];
		$r = $this->redis->hlen($key);
		var_dump($r);
		exit;
	}


	public function hmsethash(){
		$key = $_GET['key'];
		$fieldarr = array(
			'name' => 'xiaofan',
			'age' => '28',
			'address' => 'bj',
		);
		$r = $this->redis->hmset($key, $fieldarr);
		var_dump($r);
		exit;
	}

	public function hmgethash(){
		$key = $_GET['key'];
		$arr = array('name','age','address');
		$r = $this->redis->hmget($key, $arr);
		print_r($r);
		exit;
	}


//===============LIST 相关操作=================================================
	public function lpushlist(){
		$key = $_GET['key'];
		$mylist = array('12345','23456','34567','45678','56789');
		foreach($mylist as $v){
			$r = $this->redis->lpush($key, $v);
		}
		var_dump($r);
		exit;
	}

	public function lsetlist(){
		$key = $_GET['key'];
		$index = 1;
		$val = '12345678';
		$r = $this->redis->lset($key, $index, $val);
		var_dump($r);
		exit;
	}

	public function lpoplist(){
		$key = $_GET['key'];
		$r = $this->redis->lpop($key);
		var_dump($r);
		exit;
	}


	public function rpushlist(){
		$key = $_GET['key'];
		$valarr = array('a','b','c','c','d','e','f','g','h','i','o');
		foreach($valarr as $v){
			$r = $this->redis->rpush($key, $v);
		}
		var_dump($v);
		exit;
	}

	public function rpoplist(){
		$key = $_GET['key'];
		$r = $this->redis->rpop($key);
		var_dump($r);
		exit;
	}

	public function llenlist(){
		$key = $_GET['key'];
		$r = $this->redis->llen($key);
		var_dump($r);
		exit;
	}

	public function lrangelist(){
		$key = $_GET['key'];
		$start = 0;
		$stop = 10;
		$r = $this->redis->lrange($key, $start, $stop);
		var_dump($r);
		exit;
	}

//================集合相关操作=========================================
	//set中添加元素
	public function saddset(){
		$key = $_GET['key'];
		$valarr = array('test','user','member','uid','fans');
		foreach($valarr as $v){
			$r = $this->redis->sadd($key, $v);
		}
		var_dump($r);
		exit;
	}

	//获取set中的所有元素
	public function smembersset(){
		$key = $_GET['key'];
		$r = $this->redis->smembers($key);
		print_r($r);
		exit;
	}

	public function scardset(){
		$key = $_GET['key'];
		$r = $this->redis->scard($key);
		var_dump($r);
		exit;
	}

	public function sdiffset(){
		$key1 = $_GET['key1'];
		$key2 = $_GET['key2'];
		$r = $this->redis->sdiff($key1, $key2);
		print_r($r);
		exit;
	}

	public function sdiffstoreset(){
		$key1 = $_GET['key1'];
		$key2 = $_GET['key2'];
		$r = $this->redis->sdiffstore('destination', $key1, $key2);
		var_dump($r);
		exit;
	}

	public function sinterset(){
		$key1 = $_GET['key1'];
		$key2 = $_GET['key2'];
		$r = $this->redis->sinter($key1, $key2);
		print_r($r);
		exit;
	}

	public function sismemberset(){
		$key = $_GET['key'];
		$val = $_GET['val'];
		$r = $this->redis->sismember($key, $val);
		var_dump($r);
		exit;
	}


	public function smoveset(){
		$key1 = $_GET['key1'];
		$key2 = $_GET['key2'];
		$val = $_GET['val'];
		$r = $this->redis->smove($key1, $key2, $val);
		var_dump($r);
		exit;
	}

	public function sremset(){
		$key = $_GET['key'];
		$val = $_GET['val'];
		$r = $this->redis->srem($key, $val);
		var_dump($r);
		exit;
	}


//======================有序集合相关操作========================

	public function zaddzset(){
		$key = $_GET['key'];
		$score = $_GET['score'];
		$val = $_GET['val'];
		$r = $this->redis->zadd($key, $score, $val);
		var_dump($r);
		exit;
	}

	public function zcardzset(){
		$key = $_GET['key'];
		$r = $this->redis->zcard($key);
		var_dump($r);
		exit;
	}

	public function zcountzset(){
		$key = $_GET['key'];
		$r = $this->redis->zcount($key, 1, 2);
		var_dump($r);
		exit;
	}


	public function zincrbyzset(){
		$key = $_GET['key'];
		$member = $_GET['member'];
		$r = $this->redis->zincrby($key, 5, $member);
		var_dump($r);
		exit;
	}


	public function zrangezset(){
		$key = $_GET['key'];
		$r = $this->redis->zrange($key, 4, 8);
		var_dump($r);
		exit;
	}

	public function zrangebyscorezset(){
		$key = $_GET['key'];
		$r = $this->redis->zrangebyscore($key, 1, 20, array('withscores' => TRUE,'limit' => array(0,4)));
		print_r($r);
		exit;
	}

	public function zrankzset(){
		$key = $_GET['key'];
		$mem = $_GET['mem'];
		$r = $this->redis->zrank($key, $mem);
		var_dump($r);
		exit;
	}

	public function zremzset(){
		$key = $_GET['key'];
		$mem = $_GET['mem'];
		$r = $this->redis->zrem($key, $mem);
		var_dump($r);
		exit;
	}


	public function zremrangebyscorezset(){
		$key = $_GET['key'];
		$r = $this->redis->zremrangebyscore($key, 2, 5);
		var_dump($r);
		exit;
	}

	public function zscorezset(){
		$key = $_GET['key'];
		$mem = $_GET['mem'];
		$r = $this->redis->zscore($key, $mem);
		var_dump($r);
		exit;
	}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值