美文网首页
Redis入门 - 数据结构

Redis入门 - 数据结构

作者: zwm0800 | 来源:发表于2017-07-18 10:34 被阅读0次

    redis 支持的数据类型

    redis 支持以下五种数据类型,其中比较常用的是哈希(Hash)和字符串(String)。

    • 字符串(String)
    • 字符串列表(List)
    • 有序字符串集合(Sorted set)
    • 哈希(Hash)
    • 字符串集合(Set)

    同时,redis是Key-Value形式的数据库。因此,在使用redis时对Key定义注意以下几点:

    • 不要太长,不超过1024字节,这不仅会降低查询效率,同时会消耗内存
    • 不要太短,可读性差,使用Key设置为x
    • 同一项目中,命名尽量统一规范

    存储String类型

    字符串在redis中是使用二进制形式存储,其中value最大支持数据的长度为:512M。对于字符串操作常用命令有:

    • 赋值:set
    • 取值:get
    • 先取值再赋值:getset
    • 删除:del
    • 数值增减:incr / decr
    • 扩展:incrby / decrby,append
    127.0.0.1:6379> set name jack
    OK
    127.0.0.1:6379> get name
    "jack"
    127.0.0.1:6379> getset name tom  // 先取出原有name的值,再设置新值为tom
    "jack"
    127.0.0.1:6379> get name
    "tom"
    127.0.0.1:6379> del name
    (integer) 1
    127.0.0.1:6379> get name
    (nil)
    127.0.0.1:6379> set age 10
    OK
    127.0.0.1:6379> incr age    // 递增
    (integer) 11
    127.0.0.1:6379> get age
    "11"
    127.0.0.1:6379> decr age  // 递减
    (integer) 10
    127.0.0.1:6379> get age
    "10"
    

    incr和decr命令只能操作整形数据,如果操作的key不存在,则会先创建对应key,再初始化值为0再递增1。如果操作的key不能转换成整形时,将报错误信息。

    127.0.0.1:6379> get number
    (nil)
    127.0.0.1:6379> incr number
    (integer) 1
    127.0.0.1:6379> get number
    "1"
    
    127.0.0.1:6379> set name hello
    OK
    127.0.0.1:6379> get name
    "hello"
    127.0.0.1:6379> incr name
    (error) ERR value is not an integer or out of range
    127.0.0.1:6379> 
    

    incrby和decrby命令是增加/减少指定的值

    127.0.0.1:6379> incrby number 1000
    (integer) 1001
    127.0.0.1:6379> get number
    "1001"
    127.0.0.1:6379> decrby number 5
    (integer) 996
    127.0.0.1:6379> get number
    "996"
    

    append:拼接字符,返回的为字符串的长度

    127.0.0.1:6379> append name world
    (integer) 10
    127.0.0.1:6379> get name
    "helloworld"
    127.0.0.1:6379>
    

    存储Hash

    redis中的Hash类型是字符串与字符串之间的映射,适合存储值对象的信息,比如用户名,密码,年龄……常用指令有:

    • hset
    • hget
    • hmset
    • hmget
    • hgetall
    • hvals
    • hdel
    • hexists
    127.0.0.1:6379> hset user username admin        // 设置对象的属性
    (integer) 1
    127.0.0.1:6379> hget user username                  // 获取对象的属性
    "admin"
    127.0.0.1:6379> hmset user age 21 sex 0
    OK
    127.0.0.1:6379> hmget user age sex username    // 批量设置key、value
    1) "21"
    2) "0"
    3) "admin"
    127.0.0.1:6379> hgetall user        // 获取对象的所有key
    1) "username"
    2) "admin"
    3) "age"
    4) "21"
    5) "sex"
    6) "0"
    127.0.0.1:6379> hvals user    // 获取对象所有value
    1) "admin"
    2) "21"
    3) "0"
    127.0.0.1:6379> hdel user age    // 删除对象的属性
    (integer) 1
    127.0.0.1:6379> hget user age
    (nil)
    127.0.0.1:6379> hexists user password   // 判断属性是否存在
    (integer) 0
    127.0.0.1:6379> hexists user username
    (integer) 1
    

    相关文章

      网友评论

          本文标题:Redis入门 - 数据结构

          本文链接:https://www.haomeiwen.com/subject/vnlwhxtx.html