您的位置:首页 > 数据库 > Redis

redis 相关操作

2016-08-10 11:34 281 查看
<?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;
}
4000

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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: