很多人把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排序函数总结相关推荐

  1. python中sort和sorted区别_Python中的 sort 和 sorted的用法与区别

    今天在做一道题时,因为忘了Python中sort和sorted的用法与区别导致程序一直报错,找了好久才知道是使用方法错误的问题!现在就大致的归纳一下sort和sorted的用法与区别 1. sort: ...

  2. jquery中去重复排序(函数: $.grep() join() sort() )

    1.首先把字符串分割为数组(中文除外) var str = '12345678543';var array = str.split ("");//分割为数组console.log ...

  3. java sort()怎么实现的_Java中Array.sort()的排序原理

    People[]people={newPeople("小飞飞","2","2:41:28"),newPeople("小国" ...

  4. hive中:row_number()排序函数的使用

    https://blog.csdn.net/javajxz008/article/details/53493509 第一步: select *,row_number() over(distribute ...

  5. 用c语言设计一个任意20个数升序排列,编写一个用选择法对一维数组升序排序的函数,并在主函数中调用该排序函数,实现对任意20个整数的排序。...

    满意答案 jgbpz 推荐于 2016.03.19 采纳率:56%    等级:9 已帮助:964人 #include #include #include #define MAXlen 100void ...

  6. python中的sort,sorted

    python中的sort,sorted 文章目录 python中的sort,sorted 两者区别 用法: 用法示例 对字典排序: 对列表排序: 两者区别 sorted有返回值,而sort没有返回值. ...

  7. R语言数据排序函数sort, order rank实战

    R语言数据排序函数sort, order & rank实战 目录 R语言数据排序函数sort, order & rank实战 #sort vs. order vs. rank函数基础 ...

  8. oracle分类函数总结,oracle中分组排序函数用法

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  9. oracle 条件排序函数,oracle中分组排序函数

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  10. oracle中按数字大小排序函数,oracle中分组排序函数用法

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如: 1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的 ...

最新文章

  1. ES和JS的区别,以及JavaScript的基本组成
  2. css图片悬停边框,CSS悬停边框使内联元素稍微调整
  3. 西南科技大学 计算机组成原理2011-2012,西南科技大学计算机组成原理2010-2011试卷A卷参考答案(2011)...
  4. Windows Azure-2.5天免费深度技术训练营——面向软件工程师和架构师
  5. red hat enterprise 6.3 change to chinese
  6. Linux驱动编程 step-by-step (四) 字符设备的注册与设备节点的自动创建
  7. 手把手教你写平衡二叉树
  8. source code of MES Data
  9. 埃及分数(信息学奥赛一本通-T1444)
  10. 该来的还是来了!视觉中国网站今日恢复上线运营
  11. Optimal Step Nonrigid ICP Algorithms for surface registration
  12. 防火墙iptables
  13. 安卓修改软件安装时间_WPS 2019软件安装教程
  14. 搭建一个简单的Pascal脚本开发环境
  15. mac如果装win系统运行,虚拟机好还是双系统好?
  16. html刮刮乐百分比,jQuery+html5实现彩票刮刮乐效果
  17. 获取设备唯一编号替代IMEI新方案
  18. Python读取Mysql数据库数据保存至csv文件,以及简单使用Python进行数据分析。(加州房价数据集)
  19. java毕业设计_基于android的二手书城app的设计与实现
  20. (Java实习生)每日10道面试题打卡——Java基础知识篇2

热门文章

  1. JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPQL进行查询
  2. 杭电1411 校庆神秘建筑
  3. iOS应用开发环境准备
  4. eclisep安装反编译插件jadClipse
  5. python中set集合_Python中的SET集合操作
  6. oracle怎么分配表空间,oracle数据库分配表空间、创造用户、分配用户权限操作
  7. 跑动大数据的笔记本配置_大数据说话|你比一般跑者跑得更快吗?
  8. 铁路售票系统_黑龙江一学生购买的火车票上惊现“学猪”字样!铁路部门给出回应...
  9. SQL server 查询语句
  10. mysql配置所有ip连接_Mysql查看用户连接数配置及每个IP的请求情况