redis 安装文件: 


http://blog.csdn.net/tangsilai/article/details/7477961


==============================     String  =======================================

一. 字符串:  name , age 均为key
    
    设置值: set name boa   >> ok
    
    获取值: get name       >> "boa"
    
    删除key: del name
    
    查看key存储数据的类型: type name  >> string
    
    拼接串: append name isGood    >> get name >>"boaisGood"    
   
    set age 1
    key的值自增1: incr age  
    key的值自减1: cecr age
    
    多个查询 mget name age >>
        1) "boa111"
        2) "25"
    
    
    返回 key 所储存的字符串值的长度: strlen name >>        
        (integer) 6
    
    

    
    
 ========================      Hash     ====================================
 
 二. 哈希表: hashkey 为key也叫作表名.  表内容: name "boa" age 25 description "is a good man"   // 分 h- / hm-
    单个保存: hset hashkey1 name "boa" >>  //hset 不支持批量设置
              hset hashkey1 age 25     >>
              hset hashkey1 description "is a good man" >>
          
    批量保存: hmset hashkey name "boa" age 25 description "is a good man"
    
    查询单个值: hget hashkey name  >> //hget不支持查询多个值
         "boa"    
         
    查询单个值: hmget hashkey name >>   
        1) "boa"
        
    查询多个值: hmget hashkey name age >>
        1) "boa"
        2) "25"
    
    获取所有key和value: hgetall hashkey >>   //key value 
        1) "name"
        2) "boa"
        3) "age"
        4) "25"
        5) "description"
        6) "is a good man"
    
    获取所有key:> hkeys hashkey >>
        1) "name"
        2) "age"
        3) "description"
    
    获取所有value:>hvals hashkey >>
        1) "boa"
        2) "25"
        3) "is a good man"
    获取表中字段的数量: hlen hashkey >>
        (integer) 3
    
    @@@@ 使用场景:  对象存储.
    
==========================       List      ==============================================

三 . 列表:  listkey   //分左右操作

    左插入(从头部插入):  head    mycat-->mysql-->mongo-->redis(first)    tail
          lpush listkey redis
          lpush listkey mongo
          lpush listkey mysql
          lpush listkey mycat
          
    右插入(从尾部插入) :    head  (first)redis<--mongo<--mysql<--mycat  tail
          rpush listkey2 redis
          rpush listkey2 mongo
          rpush listkey2 mysql
          rpush listkey2 mycat
    
    根据索引(序号)查询列表中的元素: lindex listkey 1  >>      //索引从0开始,到length-1为止.          
          "mongo"
     
    查询指定范围内的元素: lrange listkey 0 2  >>  // lrange key start_index stop_index (该范围也是索引的范围)
        1) "mycat"
        2) "mysql"
        3) "mongo"
    
    
    
    获取列表长度: llen listkey >>
           (integer) 4
    
    
    移除并获取列表的第一个元素: lpop listkey  >>
        "mycat"
        
    移除并获取列表的第一个元素: lpop listkey2  >>
        "redis"
    
    移除并获取列表的最后一个元素: rpop listkey  >>
        "redis"
        
    移除并获取列表的最后一个元素: rpop listkey2  >>
        "mycat"
    
    
   
    移除列表元素  lrem listkey2 1 hello     >>  // listkey2 目标集合,  1: 表示数量, 正负表示方向   hello 表示要删除匹配的对象.
    Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
        COUNT 的值可以是以下几种:
        count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
        count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
        count = 0 : 移除表中所有与 VALUE 相等的值。
    
    
    移除并获取第一个:    blpop listkey 10   //一直等待,直到超时或者发现可弹出的元素为止  10 : 等待时间.
    移除并获取最后一个:  brpop listkey timeout   //~
    
    尾部移除一个元素,将这个元素从头部插入: rpoplpush listkey listkey 
    
    
   @@@@ 使用场景: 消息队列, 发送缓存队列, 支持反向查找和遍历,
   
     假设现在有 job 、 command 和 request 三个列表,其中 job 不存在, command 和 request 都持有非空列表。考虑以下命令:  
  BLPOP job command request 30  #阻塞30秒,0的话就是无限期阻塞,job列表为空,被跳过,紧接着command 列表的第一个元素被弹出。  
  1) "command"                             # 弹出元素所属的列表  
  2) "update system..."                    # 弹出元素所属的值   
  为什么要阻塞版本的pop呢,主要是为了避免轮询。
  举个简单的例子如果我们用list来实现一个工作队列。
  执行任务的thread可以调用阻塞版本的pop去获取任务这样就可以避免轮询去检查是否有任务存在。
  当任务来时候工作线程可以立即返回,也可以避免轮询带来的延迟。  
    
===============================      Set     =============================================
四. 集合 : setkey , setkey2 均为set名.

   添加元素:sadd setkey "hello" >>  (integer) 1
            sadd setkey "world" >>  (integer) 1
            sadd setkey "fuck"  >>  (integer) 1
            sadd setkey "hello" >>  (integer) 0  
            sadd setkey is very good city  //批量添加元素

   批量添加元素:  sadd setkey2 boa is good city fuck  
   
   查询集合的所有元素: smembers setkey   >>
            1) "fuck"
            2) "work"
            3) "hello"   
   
    获取集合的成员个数: scard setkey  >>
            (integer) 3
    
    移除集合中的一个或者多个成员: srem  fuck work  >>
    
    返回给定所有集合的交集:  sinter setkey setkey2 >>
            1) "city"
            2) "fuck"
            3) "good"
            4) "is"
    
    返回给定所有集合的并集:  sunion setkey setkey2  >>
            1) "boa"
            2) "world"
            3) "fuck"
            4) "good"
            5) "is"
            6) "city"
            7) "very"
            8) "hello"
    
    返回给定所有集合的差集:  sdiff setkey setkey2 //setkey中有setkey2中没有的集合. >> 
            1) "world"
            2) "very"
            3) "hello"
            
    将 world 元素从 setkey 集合移动到 seteky2 集合: smove setkey seteky2 world >>
            (integer) 1
            
            
            
            
            
    
   @@@@应用场景:  需要自动排重的场景, 随机排列数据 . 可以求交集,并集,差集.
    
    
====================================   sorted Set    ===================================

五. 有序集合:  ssetkey, ssetkey2, ssetkey3

添加元素: zadd ssetkey 1 yyf 
          zadd ssetkey 2 czq
          zadd ssetkey 3 cyf
          zadd ssetkey 5 lxy
          zadd ssetkey 6 lmz
          zadd ssetkey 6 yhz 
          
批量添加(要带分数): zadd ssetkey2 1 yyf 2 czq 3 cyf 4 lxy 5 yhz 6 lmz 5 xxx

查看所有元素: zrange ssetkey 0 -1
            1) "yyf"
            2) "czq"
            3) "cyf"
            4) "lxy"  
            5) "lmz"
            6) "yhz"
            --------------------------------
            zrange ssetkey2 0 -1
            1) "yyf"
            2) "czq"
            3) "cyf"
            4) "lxy"
            5) "xxx"    
            6) "yhz"
            7) "lmz"



删除元素:  zrem ssetkey2 boa

删除多个元素:   zrem ssetkey2 yyf czq
    (integer) 2
    
查看元素个数: zcard ssetkey2
    (integer) 7         

查看指定元素的分数: zscore ssetkey czq >>
   "2"
    

附件列表

redis的 key string hash list set sorted set 常用的方法的更多相关文章

  1. 总结JS中string、math、array的常用的方法

    JS为每种数据类型都内置很多方法,真的不好记忆,而且有些还容易记混,现整理如下,以便以后查看: 一.String ①charAt()方法用于返回指定索引处的字符.返回的字符是长度为 1 的字符串. 语 ...

  2. Redis应用场景 及其数据对象 string hash list set sortedset

    原文地址:http://www.cnblogs.com/shanyou/archive/2012/09/04/2670972.html Redis开创了一种新的数据存储思路,使用Redis,我们不用在 ...

  3. php Redis函数使用总结(string,hash,list, set , sort set )

    对于:string, set , sort set , hash 的增,改操作,是同一个命令,但是把它当改操作时,及时成功返回值依旧为0 对于:list结构来说,增删改查自有一套方法.   <? ...

  4. redis操作(String,Hash,List,Set,其他操作)

    一.String操作 String操作,redis中的String在在内存中按照一个name对应一个value来存储.如图: set(name,value,ex=None,px=None,nx=Fal ...

  5. 带你掌握Redis数据类型:string和Hash

    摘要:Redis中有五大数据类型,分别是String.List.Set.Hash和Zset. 本文分享自华为云社区<Redis的string类型常用命令解析>,作者:灰小猿 . 先问大家一 ...

  6. 7.redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?

    作者:中华石杉 面试题 redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗? 面试官心理分析 在前几年, ...

  7. Redis 数据类型总结—String

    1.1 数据类型 Redis常用五种数据类型:string,   hash,   list,   set,    zset(sorted set). Redis内部使用一个redisObject对象来 ...

  8. redis 与 spring整合 hash 增删改操作 list增删改操作

    本人,对于以前redis的学习是非常痛苦的!近期将以前的东西捡起来.以博客的形式存储,以便于以后快速捡起来,并和广大同胞一起分享! 1):简单介绍 redis 是基于C语言开发. redis是一个ke ...

  9. Redis实战 - 2.list、set和Sorted Set

    List Redis的List是通过Linked List(链表)来实现的String集合,所以插入数据的速度很快. 但是缺点就是在数据量比较大的时候,访问某个数据的时间可能会很长,但针对这种情况,可 ...

随机推荐

  1. python学习-4-类的使用

    class Animal: def __init__(self, name): # Constructor of the class self.name = name def talk(self): ...

  2. jQuery设计理念

    jQuery设计理念 引用百科的介绍: jQuery是继prototype之后又一个优秀的Javascript框架.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1. ...

  3. hd acm1018

    Problem Description In many applications very large integers numbers are required. Some of these app ...

  4. day4 内置函数 迭代器&生成器 yield总结 三元运算 闭包

    内置函数: 内置函数 # abs()返回一个数字的绝对值.如果给出复数,返回值就是该复数的模. b = -100 print(b) print(abs(b)) # all() 所有为真才为真,只要有一 ...

  5. 大话设计模式--装饰者模式 Decorator -- C++实现实例

    1.装饰者模式 Decorator 动态地给一个对象添加一个额外的职责, 就添加功能来说, 装饰模式比生成子类更为灵活. 每个装饰对象的实现和如何使用这个对象分离,  每个装饰对象只关心自己的功能,不 ...

  6. ubantu卸载软件

    参考:https://blog.csdn.net/luckydog612/article/details/80877179 https://blog.csdn.net/get_set/article/ ...

  7. CSS3分享功能

    [代码][CSS]代码  $.fn.share = function(opts) {  var $body, $head;  if ($(this).length === 0) {    consol ...

  8. Codeforces 351B Jeff and Furik:概率 + 逆序对【结论题 or dp】

    题目链接:http://codeforces.com/problemset/problem/351/B 题意: 给你一个1到n的排列a[i]. Jeff和Furik轮流操作,Jeff先手. Jeff每 ...

  9. 分享知识-快乐自己:FastDFS 上传 java 源码

    FastDFS 上传 java 源码:点我下载源码 首先导入 POM 文件:解决 maven 不能下载 fastdfs-client-java JAR <dependency> <g ...

  10. C++(三)— 二维容器

    1.二维bool向量 vector<vector<bool>> dp(len, vector<bool>(len, false));