sort redis php,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的值的列表
示例:复制代码 代码如下:<?php $redis = new redis(); $redis->connect("192.168.1.108", 6379); $redis->flushall(); $array=array("tank"=>"1", "zhang"=>"2", "ying"=>"3", "test"=>"4"); $redis->mset($array); print_r($redis->keys("*s*")); // 结果:Array ( [0] => test ) print_r($redis->keys("y???")); // 结果:Array ( [0] => ying ) print_r($redis->keys("t[e]*")); // 结果:Array ( [0] => test ) print_r($redis->keys("*")); // 结果:Array ( [0] => ying [1] => test [2] => zhang [3] => tank ) print_r($redis->mget(array("tank","ying"))); // 结果:Array ( [0] => 1 [1] => 3 ) ?>
4) sort
描述:按条件取得数据参数:复制代码 代码如下:array( "by" => "pattern", //匹配模式 "limit" => array(0, 1), "get" => "pattern" "sort" => "asc" or "desc", "alpha" => TRUE, "store" => "external-key")返回或保存给定列表、集合、有序集合key中经过排序的元素。
一般排序复制代码 代码如下:<?php $redis = new redis(); $redis->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 ) ?>
字母排序
复制代码 代码如下:<?php $redis = new redis(); $redis->connect("192.168.1.108", 6379); $redis->flushall(); $redis->lpush("test", "a"); $redis->lpush("test", "d"); $redis->lpush("test", "b"); print_r($redis->sort("test")); //结果:Array ( [0] => b [1] => d [2] => a ) print_r($redis->sort("test",array("ALPHA"=>TRUE))); //结果:Array ( [0] => a [1] => b [2] => d ) ?>
排序取部分数据
复制代码 代码如下:<?php $redis = new redis(); $redis->connect("192.168.1.108", 6379); $redis->flushall(); $redis->lpush("test", 31); $redis->lpush("test", 5); $redis->lpush("test", 2); $redis->lpush("test", 23); $array = array("LIMIT"=>array(0,3),"SORT"=>"DESC"); print_r($redis->sort("test",$array)); //结果:Array ( [0] => 31 [1] => 23 [2] => 5 ) ?>
使用外部key进行排序
有时候你会希望使用外部的key作为权重来比较元素,代替默认的对比方法。
假设现在有用户(user)表数据如下:
复制代码 代码如下:id name score ------------------------------- 1 tank 89 2 zhang 40 4 ying 70 3 fXXK 90
id数据保存在key名为id的列表中。name数据保存在key名为name_{id}的列表中score数据保存在score_{id}的key中。
复制代码 代码如下:<?php $redis = new redis(); $redis->connect("192.168.1.108", 6379); $redis->flushall(); $redis->lpush("id", 1); $redis->set("name_1", "tank"); $redis->set("score_1",89); $redis->lpush("id", 2); $redis->set("name_2", "zhang"); $redis->set("score_2", 40); $redis->lpush("id", 4); $redis->set("name_4","ying"); $redis->set("score_4", 70); $redis->lpush("id", 3); $redis->set("name_3", "fXXK"); $redis->set("score_3", 90); /** * 按score从大到小排序,取得id */ $sort=array("BY"=>"score_*", "SORT"=>"DESC" ); print_r($redis->sort("id",$sort)); //结果:Array ( [0] => 3 [1] => 1 [2] => 4 [3] => 2 ) /** * 按score从大到小排序,取得name */ $sort=array("BY"=>"score_*", "SORT"=>"DESC", "GET"=>"name_*" ); print_r($redis->sort("id",$sort)); //结果:Array ( [0] => fXXK [1] => tank [2] => ying [3] => zhang ) /** * 按score从小到大排序,取得name,score */ $sort=array("BY"=>"score_*", "SORT"=>"DESC", "GET"=>array("name_*","score_*") ); print_r($redis->sort("id",$sort)); /** *结果:Array ( [0] => fXXK [1] => 90 [2] => tank [3] => 89 [4] => ying [5] => 70 [6] => zhang [7] => 40 )) */ /** * 按score从小到大排序,取得id,name,score */ $sort=array("BY"=>"score_*", "SORT"=>"DESC", "GET"=>array("#","name_*","score_*") ); print_r($redis->sort("id",$sort)); /** * 结果:Array ( [0] => 3 [1] => fXXK [2] => 90 [3] => 1 [4] => tank [5] => 89 [6] => 4 [7] => ying [8] => 70 [9] => 2 [10] => zhang [11] => 40 ) */ ?>
sort redis php,php-redis中的sort排序函数总结相关推荐
- python中sort和sorted区别_Python中的 sort 和 sorted的用法与区别
今天在做一道题时,因为忘了Python中sort和sorted的用法与区别导致程序一直报错,找了好久才知道是使用方法错误的问题!现在就大致的归纳一下sort和sorted的用法与区别 1. sort: ...
- jquery中去重复排序(函数: $.grep() join() sort() )
1.首先把字符串分割为数组(中文除外) var str = '12345678543';var array = str.split ("");//分割为数组console.log ...
- java sort()怎么实现的_Java中Array.sort()的排序原理
People[]people={newPeople("小飞飞","2","2:41:28"),newPeople("小国" ...
- hive中:row_number()排序函数的使用
https://blog.csdn.net/javajxz008/article/details/53493509 第一步: select *,row_number() over(distribute ...
- 用c语言设计一个任意20个数升序排列,编写一个用选择法对一维数组升序排序的函数,并在主函数中调用该排序函数,实现对任意20个整数的排序。...
满意答案 jgbpz 推荐于 2016.03.19 采纳率:56% 等级:9 已帮助:964人 #include #include #include #define MAXlen 100void ...
- python中的sort,sorted
python中的sort,sorted 文章目录 python中的sort,sorted 两者区别 用法: 用法示例 对字典排序: 对列表排序: 两者区别 sorted有返回值,而sort没有返回值. ...
- R语言数据排序函数sort, order rank实战
R语言数据排序函数sort, order & rank实战 目录 R语言数据排序函数sort, order & rank实战 #sort vs. order vs. rank函数基础 ...
- oracle分类函数总结,oracle中分组排序函数用法
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...
- oracle 条件排序函数,oracle中分组排序函数
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...
- oracle中按数字大小排序函数,oracle中分组排序函数用法
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如: 1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的 ...
最新文章
- ES和JS的区别,以及JavaScript的基本组成
- css图片悬停边框,CSS悬停边框使内联元素稍微调整
- 西南科技大学 计算机组成原理2011-2012,西南科技大学计算机组成原理2010-2011试卷A卷参考答案(2011)...
- Windows Azure-2.5天免费深度技术训练营——面向软件工程师和架构师
- red hat enterprise 6.3 change to chinese
- Linux驱动编程 step-by-step (四) 字符设备的注册与设备节点的自动创建
- 手把手教你写平衡二叉树
- source code of MES Data
- 埃及分数(信息学奥赛一本通-T1444)
- 该来的还是来了!视觉中国网站今日恢复上线运营
- Optimal Step Nonrigid ICP Algorithms for surface registration
- 防火墙iptables
- 安卓修改软件安装时间_WPS 2019软件安装教程
- 搭建一个简单的Pascal脚本开发环境
- mac如果装win系统运行,虚拟机好还是双系统好?
- html刮刮乐百分比,jQuery+html5实现彩票刮刮乐效果
- 获取设备唯一编号替代IMEI新方案
- Python读取Mysql数据库数据保存至csv文件,以及简单使用Python进行数据分析。(加州房价数据集)
- java毕业设计_基于android的二手书城app的设计与实现
- (Java实习生)每日10道面试题打卡——Java基础知识篇2
热门文章
- JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPQL进行查询
- 杭电1411 校庆神秘建筑
- iOS应用开发环境准备
- eclisep安装反编译插件jadClipse
- python中set集合_Python中的SET集合操作
- oracle怎么分配表空间,oracle数据库分配表空间、创造用户、分配用户权限操作
- 跑动大数据的笔记本配置_大数据说话|你比一般跑者跑得更快吗?
- 铁路售票系统_黑龙江一学生购买的火车票上惊现“学猪”字样!铁路部门给出回应...
- SQL server 查询语句
- mysql配置所有ip连接_Mysql查看用户连接数配置及每个IP的请求情况