本文主要解决以下问题:
Redis有哪些数据类型?
各种类型有什么特点怎么使用?
这里的数据类型是指,Redis键值对的值的类型。
本文只是写出最基础的概念和最常用的命令。
更多,更完整的命令,可以访问下面的文档:
Redis教程
Redis使用手册
基础数据类型五种:Strings , Lists , Hashes ,Sets ,Sorted sets。
1.Strings类型(字符串类型)
- 最基础的类型
- 二进制安全,可以包含各种数据。
- 可以做原子计算器
- 最大长度:512M。(需要查证和核实)
常用命令:
SET key value:设置一个字符串键值对
GET key : 根据key获取值
实例如下:
127.0.0.1:6379> set myStrKey 123 //设置一个key是“myStrKey”值是“123”的键值对。
OK
127.0.0.1:6379> get myStrKey //获取key“myStrKey”的值。
"123" //返回值“123”
127.0.0.1:6379>
2.Lists类型(列表类型)
- 底层使用双向链表实现。
- 元素可以重复。
- 添加删除元素快,查找元素慢(??还需要补充了解,按照索引来操作理论上如此)
常用命令如下:
LPUSH key value:在左边加入一个元素。
RPUSH key value:在右边加入一个元素。
LRANGE key start stop:从列表中指定一个范围来取元素。
127.0.0.1:6379> LPUSH myList A //从列表myList左边添加一个元素A
(integer) 1
127.0.0.1:6379> LPUSH myList A //从列表myList左边添加一个元素A
(integer) 2
127.0.0.1:6379> LRANGE myList 0 10 //取出列表0到10的内容
1) "A"
2) "A"
127.0.0.1:6379> RPUSH myList B //从列表myList右边添加一个元素B
(integer) 3
127.0.0.1:6379> LRANGE myList 0 10 //取出列表0到10的内容
1) "A"
2) "A"
3) "B"
127.0.0.1:6379>
3.Hashes 类型(哈希类型)
适合存储对象,特别是JSON这样键值对类型的对象。
- 本类型就是value的值也是多个键值对。
常用命令如下:
HSET key field velue : 单个键值对存储,还可以用于修改key的某个field(字段)的值。
HMSET key field value [field value ...]:多个键值对批量存储。
HGETALL key :获取key的所有值 。
HGET key field : 获取key的field字段的值。
127.0.0.1:6379> HSET myHashes name zhao //设置key为“myHashes”的hash,包含1个字段“name” ,值为“zhao”
(integer) 1
127.0.0.1:6379> HGETALL myHashes //获取key为“myHashes”的hash的所有字段和值。
1) "name"
2) "zhao"
127.0.0.1:6379> HGET myHashes name /获取key为“myHashes”的hash的字段“name”的值。
"zhao"
127.0.0.1:6379> HSET myHashes name zhao11 //修改key=“myHashes”的hash的name字段的值为"zhao11"
(integer) 0
127.0.0.1:6379> HGET myHashes name //获取key=myHashes 的hash的name字段的值。
"zhao11"
127.0.0.1:6379>
4.Sets (无序集合类型)
- 元素不能重复,如果重复就会覆盖。
- 丰富的交集,并集等操作。
常用命令如下:
SADD key member :添加一个元素。
SMEMBERS key :列出集合的所有元素。
127.0.0.1:6379> SADD mySets 11 //向key=mySets的集合添加元素11
(integer) 1
127.0.0.1:6379> SADD mySets 22 //向key=mySets的集合添加元素22
(integer) 1
127.0.0.1:6379> SMEMBERS mySets //列出key=mySets的集合的所有元素
1) "11"
2) "22"
127.0.0.1:6379>
5.ZSet 有序集合(有序集合类型)
无序集合
- 元素不能重复,如果重复就会覆盖。
- 每个元素会关联一个double类型的分数。根据这个分数来排序。
常用命令如下:
SADD key score member : 添加一个元素。
SMEMBERS key :列出集合的所有元素。
ZRANGE key start stop [WITHSCORE]:列出集合的元素, 写了WITHSCORE参数,也会列出分数,按小到大的顺序。
127.0.0.1:6379> ZADD myZset 1 t1 //向key=myZset的集合添加元素t1 ,分数=1
(integer) 1
127.0.0.1:6379> ZADD myZset 2 t2 //向key=myZset的集合添加元素t2 ,分数=2
(integer) 1
127.0.0.1:6379> ZRANGE myZset 0 10 //获取范围0~10的元素
1) "t1"
2) "t2"
127.0.0.1:6379> ZRANGE myZset 0 10 WITHSCORES //获取范围0~10的元素,包含分数
1) "t1"
2) "1"
3) "t2"
4) "2"
127.0.0.1:6379> ZADD myZset 1 t3 //向key=myZset的集合添加元素t3 ,分数=1
(integer) 1
127.0.0.1:6379> ZRANGE myZset 0 10 WITHSCORES //获取范围0~10的元素,包含分数
1) "t1"
2) "1"
3) "t3"
4) "1"
5) "t2"
6) "2"
127.0.0.1:6379>
两种扩展类型:Bitmaps , HyperLogLogs。
网友评论