zoukankan      html  css  js  c++  java
  • redis的5种数据结构的简介

    5种数据结构

    1、字符串

    Redis 字符串是一个字节序列。在 Redis 中字符串是二进制安全的,这意味着它们没有任何特殊终端字符来确定长度,所以可以存储任何长度为 512 兆的字符串。

    示例

    127.0.0.1:6379> set name test
    OK
    127.0.0.1:6379> get name
    "test"

    在上面的例子中,SET 和 GET 是 Redis 命令,name 和 "yiibai" 是存储在 Redis 的键和字符串值

    2、列表(有序,字符可以相同)

    lpush   将给定值推入列表的左端
    rpush 将给定值推入列表的右端
    lrange 获取列表在给定范围上的所有制 ps: lrange list-key 0 -1 第二个位置为-1的时候展示所有的内容
    lindex 获取列表在给定位置上的单个元素
    lpop 从列表左端弹出一个值,并返回被弹出的值
    rpop 从列表右端弹出一个值,并返回被弹出的值
    127.0.0.1:6379> lpush list-key item
    (integer) 1

    127.0.0.1:6379> lrange list-key 0 10
    1) "item"

    127.0.0.1:6379> lpush list-key item1
    (integer) 2
    127.0.0.1:6379> lrange list-key 0 10
    1) "item1"
    2) "item"
    127.0.0.1:6379> rpush list-key item2
    (integer) 3
    127.0.0.1:6379> lrange list-key 0 10
    1) "item1"
    2) "item"
    3) "item2"

    127.0.0.1:6379> lindex list-key 1

    "item"

    127.0.0.1:6379> lpush list-key item    (可以存储相同的数据)
    (integer) 4
    127.0.0.1:6379> lrange list-key 0 -1
    1) "item"
    2) "item1"
    3) "item"
    4) "item2"

    127.0.0.1:6379> lrange list-key 0 -1
    1) "item"
    2) "item1"
    3) "item"
    4) "item2"

    删除数据
    127.0.0.1:6379> lpop list-key
    "item"
    127.0.0.1:6379> lrange list-key 0 -1
    1) "item1"
    2) "item"
    3) "item2"
    127.0.0.1:6379> rpop list-key
    "item2"
    127.0.0.1:6379> lrange list-key 0 -1
    1) "item1"
    2) "item"

    3、集合(无序,每个字符不相同)

    sadd        将给定元素添加到集合中
    smembers 返回集合包含的所有元素
    sismember 检查给定元素是否存在于集合中
    srem 如果给定的元素存在于集合中,那么移除这个元素
    127.0.0.1:6379> sadd set-key item
    (integer) 1
    127.0.0.1:6379> sadd set-key item1
    (integer) 1
    127.0.0.1:6379> smembers set-key
    1) "item1"
    2) "item"
    127.0.0.1:6379> sismember set-key item
    (integer) 1
    127.0.0.1:6379> sismember set-key item2
    (integer) 0
    127.0.0.1:6379> smembers set-key
    1) "item1"
    2) "item"
    127.0.0.1:6379> srem set-key item
    (integer) 1
    127.0.0.1:6379> smembers set-key
    1) "item1"

    4、散列(无序,键值不可以重复)

    Redis哈希是键值对的集合。 Redis哈希是字符串字段和字符串值之间的映射,所以它们用来表示对象。

    hset     在散列里面关联器给定的键值对
    hmset 一次可以插入多个值
    hget 获取指定散列键的值
    hgetall 获取散列包含的多有的键值对
    hdel 如果给定键存在于散列里面,那么移除这个键

    127.0.0.1:6379> hset hash-key sub-key1 value1
    (integer) 1
    127.0.0.1:6379> hgetall hash-key
    1) "sub-key1"
    2) "value1"


    127.0.0.1:6379> hset hash-key sub-key2 value2
    (integer) 1
    127.0.0.1:6379> hgetall hash-key
    1) "sub-key1"
    2) "value1"
    3) "sub-key2"
    4) "value2"

    127.0.0.1:6379> hget hash-key sub-key1
    "value1"


    127.0.0.1:6379> hdel hash-key sub-key2
    (integer) 1
    127.0.0.1:6379> hgetall hash-key
    1) "sub-key1"
    2) "value1"

    127.0.0.1:6379> hmset hash-key sub-key2 value2 sub-key1 value1 sub-key3 value3
    OK
    127.0.0.1:6379> hgetall hash-key
    1) "sub-key1"
    2) "value1"
    3) "sub-key2"
    4) "value2"
    5) "sub-key3"
    6) "value3"

    在上面的例子中,哈希数据类型用于存储包含用户基本信息的用户对象。

    5、有序集合

    语序集合每个键都有一个浮点数的值,这个值叫分值

    zadd           添加到集合中
    zrange 获取集合元素
    zrangebyscore 获取在给定分值范围内的所有元素
    zrem 移除
    127.0.0.1:6379> zadd zset-key 10 memeber1
    (integer) 1
    127.0.0.1:6379> zadd zset-key 10 memeber2
    (integer) 1
    127.0.0.1:6379> zadd zset-key 11 memeber2
    (integer) 0
    127.0.0.1:6379> zrange zset-key 0 -1
    1) "memeber1"
    2) "memeber2"
    127.0.0.1:6379> zrange zset-key 0 -1 withscores
    1) "memeber1"
    2) "10"
    3) "memeber2"
    4) "11"
    
    127.0.0.1:6379> zadd zset-key 11 memeber3
    (integer) 1
    127.0.0.1:6379> zrange zset-key 0 -1 withscores
    1) "memeber1"
    2) "10"
    3) "memeber2"
    4) "11"
    5) "memeber3"
    6) "11"
    
    127.0.0.1:6379> zrangebyscore zset-key 0 100
    1) "memeber1"
    2) "memeber2"
    3) "memeber3"
    127.0.0.1:6379> zrangebyscore zset-key 0 100 withscores
    1) "memeber1"
    2) "10"
    3) "memeber2"
    4) "11"
    5) "memeber3"
    6) "11"
  • 相关阅读:
    day25:接口类和抽象类
    vue1
    How the weather influences your mood?
    机器学习实验方法与原理
    How human activities damage the environment
    Slow food
    Brief Introduction to Esports
    Massive open online course (MOOC)
    Online learning in higher education
    Tensorflow Dataset API
  • 原文地址:https://www.cnblogs.com/dragkiss/p/5666338.html
Copyright © 2011-2022 走看看