快速掌握 redis 数据类型

2019-03-14|来源:

Redis支持以下五种数据类型
String(字符串)
Hash(哈希表)
List(列表)
Set(集合)

zset(sorted set:有序集合)。


下面分别对以上5种数据类型进行介绍

1、字符串(String)

String 主要是用于一些比较简单的key/value存储,value是字符串类型,是redis中最常用的redis数据类型。 一个键最大能存储512MB

redis的string类型是二进制安全的,可以包含任何数据,比如jpg图片或者序列化的对象 。

常用命令:
  • SET

  • SETNX

  • SETEX

  • SETRANGE

  • MSET

  • MSETNX

  • APPEND

  • GET

  • MGET

  • GETRANGE

  • GETSET

  • STRLEN

  • DECR

  • DECRBY

  • INCR

  • INCRBY

  • SETBIT

  • GETBIT

实例:
   redis 127.0.0.1:6379> SET name "656463.com"
    OK
 redis 127.0.0.1:6379> GET name
  "656463.com"


2、哈希表(Hash)

Redis Hash 数据类型,其所存储的值是key/value的键值对,特别适合存储对象,例如存储用户信息,用户ID为redis中的key,各成员变量为存储值的内部key,成员变量的值为存储值的内部value
常用命令:
  • HSET

  • HSETNX

  • HMSET

  • HGET

  • HMGET

  • HGETALL

  • HDEL

  • HLEN

  • HEXISTS

  • HINCRBY

  • HKEYS

  • HVALS

实例:
redis 127.0.0.1:6379> HMSET user:1 username 656463.com 656463 www.656463.com
OK
redis 127.0.0.1:6379> HGETALL user:1
1) "username"
2) "656463.com"
3) "656463"
4) "www.656463.com"
redis 127.0.0.1:6379>


3、链表(List)

Redis List 存储的值是有序的,可以在列表的头部或尾部插入数据。例如粉丝关注列表等。列表最多可存储 232 - 1元素 (4294967295, 每个列表可存储40多亿)。
常用命令:
  • LPUSH

  • LPUSHX

  • RPUSH

  • RPUSHX

  • LPOP

  • RPOP

  • BLPOP

  • BRPOP

  • LLEN

  • LRANGE

  • LREM

  • LSET

  • LTRIM

  • LINDEX

  • LINSERT

  • RPOPLPUSH

  • BRPOPLPUSH

实例:
        redis 127.0.0.1:6379> lpush test redis
    (integer) 1
    redis 127.0.0.1:6379> lpush test mongodb
    (integer) 2
    redis 127.0.0.1:6379> lpush test rabitmq
    (integer) 3
    redis 127.0.0.1:6379> lrange test 0 10
    1) "rabitmq"
    2) "mongodb"
    3) "redis"
    redis 127.0.0.1:6379>

 


4、集合(Set)

Redis中的Set数据结构主要特别是无序与去重 。也就是集合中不能用相同的元素,集合中的数据是无序的。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
常用数据
  • SADD

  • SREM

  • SMEMBERS

  • SISMEMBER

  • SCARD

  • SMOVE

  • SPOP

  • SRANDMEMBER

  • SINTER

  • SINTERSTORE

  • SUNION

  • SUNIONSTORE

  • SDIFF

  • SDIFFSTORE

实例:
        redis 127.0.0.1:6379> sadd test redis
    (integer) 1
    redis 127.0.0.1:6379> sadd test mongodb
    (integer) 1
    redis 127.0.0.1:6379> sadd test rabitmq
    (integer) 1
    redis 127.0.0.1:6379> sadd test rabitmq
    (integer) 0
    redis 127.0.0.1:6379> smembers test
    1) "rabitmq"
    2) "mongodb"
    3) "redis"


5、有序集(zset, Sorted Set)

Redis sorted set的使用场景与set类似,区别是set不是自动有序的,而sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。当你需要一个有序的并且不重复的集合列表,那么 可以选择sorted set数据结构,比如twitter 的public timeline可以以发表时间作为score来存储,这样获取时就是自动按时间排好序的。
常用命令:
  • ZADD

  • ZREM

  • ZCARD

  • ZCOUNT

  • ZSCORE

  • ZINCRBY

  • ZRANGE

  • ZREVRANGE

  • ZRANGEBYSCORE

  • ZREVRANGEBYSCORE

  • ZRANK

  • ZREVRANK

  • ZREMRANGEBYRANK

  • ZREMRANGEBYSCORE

  • ZINTERSTORE

  • ZUNIONSTORE

实例:
        redis 127.0.0.1:6379> zadd test 0 redis
    (integer) 1
    redis 127.0.0.1:6379> zadd test 0 mongodb
    (integer) 1
    redis 127.0.0.1:6379> zadd test 0 rabitmq
    (integer) 1
    redis 127.0.0.1:6379> zadd test 0 rabitmq
    (integer) 0
    redis 127.0.0.1:6379> ZRANGEBYSCORE test 0 1000
    1) "redis"
    2) "mongodb"
    3) "rabitmq"
 


相关问答

更多

Redis有哪些数据类型

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

为什么要有java的基本数据类型

既消耗资源基本数据类型是用的最频繁的类型。 而且占用存储空间小,可以把它们存入栈中,实现快速的操作。 而他们的封装类Integer等,必需创建实例,又耗费时间,在堆中开辟内存

redis数据类型有什么好处

1.什么是redis? redis是一个基于内存的高性能key-value数据库 2.redis基本数据类型及应用场景 支持多种数据类型: string(字符串) String数据结构是简单的key-value类型,value其实不仅可以是String,也可以是数字。 常规key-value缓存应用; list(列表) list就是链表,略有数据结构知识的人都应该能理解其结构。使用Lists结构,我们可以轻松地实现最新消息排行等功能。List的另一个应用就是消息队列,可以利用List的PUSH操作 ...

redis支持的数据类型有哪些

string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

redis 查看有哪些数据类型

Redis目前支持5种数据类型,分别是: String(字符串) List(列表) Hash(字典) Set(集合) Sorted Set(有序集合)

redis教程

相关文章

更多

最近更新

更多