zoukankan      html  css  js  c++  java
  • Redis常用数据类型及命令

    Redis数据类型

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

    注意:

    命令的关键词,如set,get,lpush,zadd等不区分大小写。。

    但是key一定要注意区分大小写。

    String(字符串)

    通过 set 设置 key对应的value,再通过get获取key对应的value。

    test:0>set name  "lin"
    OK
    
    test:0>get name
    "lin"

    Hash(哈希)

    Redis Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。

    此命令会覆盖哈希表中已存在的字段。

    如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。

    hmset的基本语法如下:

    HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN  

    如果只设置一个field,则使用hset,如下:

    HSET KEY_NAME FIELD VALUE 

    获取存储在哈希表中指定字段的值,如下:

    HGET key field

    示例如下:

    test:0>hmset myhashkey field1 "hello" field2 "world"
    OK
    
    test:0>hget myhashkey field1
    "hello"
    
    test:0>hget myhashkey field2
    "world"

    test:0>hgetall myhashkey
    field1
    "hello"
    field2
    "world"


     List(列表)

    list添加数据如下:

    LPUSH key value1 [value2]      将一个或多个值插入到列表头部

    list遍历数据如下:

    Redis Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

    LRANGE KEY_NAME START END

    lpush l是left,也就是从左边开始添加。需要注意的是,继续从左边添加数据,已添加的数据会向右移。

    因此,遍历时的顺序与插入时的顺序相反。

    (rpush r是right,也就是从右边开始添加。)

    list移除数据如下:

    Lpop 命令用于移除并返回列表的第一个元素。

    Lpop KEY_NAME 

    示例如下:

    test:0>lpush order order1
    1
    
    test:0>lpush order order2
    2
    
    test:0>lpush order order3
    3
    
    
    test:0>lrange order 0 2
    order3
    order2
    order1

    test:0>lpop order
    order3

    test:0>lrange order 0 2
    order2
    order1

     Set(集合)

    Redis的Set是string类型的无序不重复的集合。

    sadd 命令:添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。

    如果添加多个元素,那么就会返回元素的个数。

    sadd key 元素1 元素2 元素3 ...

    smembers命令:遍历set集合

    smembers key

    示例如下:

    test:0>sadd mySet "redis"
    1
    
    test:0>sadd mySet "mongodb"
    1
    
    test:0>sadd mySet "couchdb"
    1
    
    //因为元素"couchdb"已经存在,所以无法再次添加,返回结果0. test:
    0>sadd mySet "couchdb" 0
    //遍历集合 test:
    0>smembers mySet "couchdb" "mongodb" "redis"
    //添加多个元素的示例如下:
    test:0> sadd set-test  c java c++
    (integer) 3
    
    

    zset(sorted set:有序集合)

    Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。

    不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

    zset的成员是唯一的,但分数(score)却可以重复。

    zadd 命令:添加元素到集合,元素在集合中存在则更新对应score

    zadd key score 元素内容 

    注意:命令的关键词,如zadd等不区分大小写。。但是key一定要注意区分大小写。

    示例如下:

    test:0>zadd  myZSet 0 "spring"
    1
    
    test:0>zadd  myZSet 0 "springboot"
    1
    
    test:0>zadd  myZSet 1 "mybatis"
    1
    
    --注意:key要区分大小写。以下的myzset写错了,所以查不出结果 test:
    0>zrangebyscore myzset 0 1 test:0>zrangebyscore myZSet 0 1 "spring" "springboot" "mybatis" test:0>
  • 相关阅读:
    RMI几种公布和引用服务的方式
    mysql 多日志表结果集合拼接存储过程
    USRP通信的结构体和常量(上位机、下位机共用)
    Flash Builder4破解步骤
    leetcode 217 Contains Duplicate 数组中是否有反复的数字
    关于权限表的基本设计
    Objective-C之成魔之路【7-类、对象和方法】
    vs2008C1902程序数据库管理不匹配
    配置hadoop集群一
    BZOJ 2338 HNOI2011 数矩形 计算几何
  • 原文地址:https://www.cnblogs.com/expiator/p/9396889.html
Copyright © 2011-2022 走看看