php-redis中的sort排序函数总结
很多人把redis当成一种数据库,其实是利用redis来构造数据库的模型,有那种数据库的味道。但是在怎么构建还是key和value的关系,与真正的关系型数据库还是不一样的。 效率高,不方便;方便的,效率不高;又方便,效率又高的要花钱。 php-redis里面的sort函数,在做web的时候取数据还是比较方便,有点关系型数据库的味道。在说sort前,先说一下前面漏的几个比较常用的函数。 1) keys描述:查找符合给定模式的key 参数:匹配模式 返回值:符合给定模式的key列表 2) mset描述:同时设置一个或多个key-value对。当发现同名的key存在时,MSET会用新值覆盖旧值,如果你不希望覆盖同名key,请使用MSETNX命令。MSET是一个原子性(atomic)操作,所有给定key都在同一时间内被设置,某些给定key被更新而另一些给定key没有改变的情况,不可能发生。 参数:数组 返回值:总是返回OK(因为MSET不可能失败) 3) mget描述:返回所有(一个或多个)给定key的值。如果某个指定key不存在,那么返回特殊值nil。因此,该命令永不失败。 参数:key的数组 返回值:一个包含所有给定key的值的列表 示例: 代码如下: connect('192.168.1.108',6379);
$redis->flushall();
$array=array('tank'=>'1', print_r($redis->mget(array("tank","ying"))); // 结果:Array ( [0] => 1 [1] => 3 ) 4) sort描述:按条件取得数据 参数: 代码如下: 'pattern',//匹配模式
'limit' => array(0,1),
'get' => 'pattern'
'sort' => 'asc' or 'desc',
'alpha' => TRUE,
'store' => 'external-key'
)
返回或保存给定列表、集合、有序集合key中经过排序的元素。
一般排序 代码如下: connect('192.168.1.108',6379);
$redis->flushall();
$redis->lpush('test',1);
$redis->lpush('test',10);
$redis->lpush('test',8);
print_r($redis->sort('test')); //结果:Array ( [0] => 1 [1] => 8 [2] => 10 ) 字母排序 代码如下: connect('192.168.1.108','a');
$redis->lpush('test','d');
$redis->lpush('test','b');
print_r($redis->sort('test')); //结果:Array ( [0] => b [1] => d [2] => a ) 排序取部分数据 代码如下: connect('192.168.1.108',31);
$redis->lpush('test',5);
$redis->lpush('test',2);
$redis->lpush('test',23);
$array = array('LIMIT'=>array(0,3),"SORT"=>'DESC'); 使用外部key进行排序有时候你会希望使用外部的key作为权重来比较元素,代替默认的对比方法。 假设现在有用户(user)表数据如下: 代码如下: id数据保存在key名为id的列表中。 name数据保存在key名为name_{id}的列表中 score数据保存在score_{id}的key中。 代码如下: connect('192.168.1.108',6379);
$redis->flushall();
$redis->lpush('id',1); $redis->lpush('id',2); $redis->lpush('id',4); $redis->lpush('id',3); /**
/**
/**
/**
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |