zoukankan      html  css  js  c++  java
  • Redis 笔记(一)——数据类型简介

    Redis 是一个 key-value 存储系统,但是它的 value 值不仅仅可以存储字符串,value 共有 五种 数据结构类型,具体如下:

    数据结构类型

    结构类型结构存储的值结构的读写能力
    STRING 可以是字符串、整数或者浮点数 另有自增、自减操作
    LIST 一个链表,每个节点包含一个字符串  
    SET 包含无序、不重复的字符串 可计算交、并、差集,可随机获取元素
    HASH 包含键值对的无序散列表  
    ZSET 字符串(键)与分值(值-浮点数)之间的有序(按分值)映射 可根据分值或成员获取元素

    一些简单的操作:

    字符串 STRING 操作:GET、SET、DEL

    # 使用 redis-cli
    127.0.0.1:6379> set hello wordl
    OK
    127.0.0.1:6379> get hello
    "wordl"
    127.0.0.1:6379> del hello
    (integer) 1
    127.0.0.1:6379> get hello
    (nil)

    列表 LIST 操作:LPUSH、RPUSH、LPOP、RPOP、LINDEX、LRANGE

    # 在列表右侧添加元素
    127.0.0.1:6379> rpush list-key item
    (integer) 1
    127.0.0.1:6379> rpush list-key item2
    (integer) 2
    127.0.0.1:6379> rpush list-key item
    (integer) 3
    # 获取列表所有元素(索引 -1 表示最后一个元素索引)
    127.0.0.1:6379> lrange list-key 0 -1
    1) "item"
    2) "item2"
    3) "item"
    # 获取指定索引的元素(从 0 开始)
    127.0.0.1:6379> lindex list-key 1
    "item2"
    # 从左侧弹出一个元素
    127.0.0.1:6379> lpop list-key
    "item"
    127.0.0.1:6379> lrange list-key 0 -1
    1) "item2"
    2) "item"

    集合 SET 操作:SADD、SREM、SISMEMBER、SMEMBERS、SINTER、SUNION、SDIFF

    127.0.0.1:6379> sadd set-key item
    (integer) 1
    127.0.0.1:6379> sadd set-key item2
    (integer) 1
    127.0.0.1:6379> sadd set-key item3
    (integer) 1
    # 无法添加重复元素
    127.0.0.1:6379> sadd set-key item
    (integer) 0
    # 获取 SET 中的所有元素
    127.0.0.1:6379> smembers set-key
    1) "item"
    2) "item3"
    3) "item2"
    # 判断元素是否在 SET 中
    127.0.0.1:6379> sismember set-key item4
    (integer) 0
    127.0.0.1:6379> sismember set-key item
    (integer) 1
    127.0.0.1:6379> srem set-key item2
    (integer) 1
    127.0.0.1:6379> smembers set-key
    1) "item"
    2) "item3"
    # 删除 SET 中的指定元素
    127.0.0.1:6379> srem set-key item2
    (integer) 0

    哈希 HASH 操作:HSET、HGET、HGETALL、HDEL

    127.0.0.1:6379> hset hash-key sub-key1 value1
    (integer) 1
    127.0.0.1:6379> hset hash-key sub-key2 value2
    (integer) 1
    # 无法添加重复的 key, 添加后会覆盖之前的 value 值
    127.0.0.1:6379> hset hash-key sub-key1 value1
    (integer) 0
    # 获取所有的 key, value
    127.0.0.1:6379> hgetall hash-key
    1) "sub-key1"
    2) "value1"
    3) "sub-key2"
    4) "value2"
    # 删除指定的 key 的键值对
    127.0.0.1:6379> hdel hash-key sub-key2
    (integer) 1
    127.0.0.1:6379> hdel hash-key sub-key2
    (integer) 0
    127.0.0.1:6379> hdel hash-key sub-key1
    (integer) 1
    127.0.0.1:6379> hgetall hash-key
    (empty list or set)

    有序集合 ZSET 操作:ZADD、ZRANGE、ZRANGEBYSCORE、ZREM

    # 添加元素 memebers,并指定其 分值 为 728
    127.0.0.1:6379> zadd zset-key 728 memeber1
    (integer) 1
    127.0.0.1:6379> zadd zset-key 982 member0
    (integer) 1
    127.0.0.1:6379> zadd zset-key 982 member0
    (integer) 0
    # 获取指定范围的元素(元素按照 分值 升序排列)
    127.0.0.1:6379> zrange zset-key 0 -1 withscores
    1) "memeber1"
    2) "728"
    3) "member0"
    4) "982"
    127.0.0.1:6379> zrange zset-key 0 -1
    1) "memeber1"
    2) "member0"
    # 获取在指定分值范围内的元素
    127.0.0.1:6379> zrangebyscore zset-key 0 800 withscores
    1) "memeber1"
    2) "728"
    # 删除指定成员的元素
    127.0.0.1:6379> zrem zset-key memeber1
    (integer) 1
    127.0.0.1:6379> zrem zset-key member1
    (integer) 0
    127.0.0.1:6379> zrange zset-key 0 -1 withscores
    1) "member0"
    2) "982"

     附:Redis 命令参考 http://redisdoc.com/

     

  • 相关阅读:
    docker cannot stop container问题解决
    Could not get lock /var/lib/dpkg/lock-frontend解决
    SpringBoot解决跨域请求拦截
    Mybatis插件开发
    kill 命令在Java应用中使用注意事项
    SpringBoot处理全局统一异常
    docker上传自己的镜像
    创建swagger的springboot-stater,并在spring cloud zuul网关中引入
    Docker+Jenkins+Git发布SpringBoot应用
    git使用.gitignore文件忽略相关文件上传
  • 原文地址:https://www.cnblogs.com/zawier/p/8524917.html
Copyright © 2011-2022 走看看