赞
踩
Redis支持五种基本数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
3 种特殊数据结构 :HyperLogLogs(基数统计)、Bitmap (位存储)、Geospatial (地理位置)。
命令演示:
批量添加查看键值对:
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 k4 v4
OK
127.0.0.1:6379> mget k1 k2 k3 k4
1) "v1"
2) "v2"
3) "v3"
4) "v4"
数值递增:
127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> incr age
(integer) 19
127.0.0.1:6379> get age
"19"
Redis没有类似MySQL中的Table的概念,我们该如何区分不同类型的key呢?
例如,需要存储用户、商品信息到redis,有一个用户id是1,有一个商品id恰好也是1
Redis的key允许有多个单词形成层级结构,多个单词之间用’:
'隔开,格式如下:
尝试插入:
127.0.0.1:6379> set klza:user:1 dahezhiquan
OK
127.0.0.1:6379> set klza:user:2 pipijiang
OK
127.0.0.1:6379> set klza:video:1 weiqiang
OK
127.0.0.1:6379> set klza:video:2 huanghun
OK
之后打开客户端,会以层级的方式展开数据:
Hash类型,也叫散列,其value是一个无序字典,类似于到Java中的HashMap结构。
插入一个hash值:
127.0.0.1:6379> hset page name qian
(integer) 1
127.0.0.1:6379> hset page age 18
(integer) 1
127.0.0.1:6379> hmget page name
1) "qian"
字段自增演示:
127.0.0.1:6379> hincrby page age 2
(integer) 20
127.0.0.1:6379> hincrby page age 2
(integer) 22
127.0.0.1:6379> hmget page age
1) "22"
Redis中的List类型与Java中的LinkedList
类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。
特征也与LinkedList
类似:
添加元素演示:
127.0.0.1:6379> lpush users xiaoqian dahe wuwu
(integer) 3
127.0.0.1:6379> rpush users zhangsan lisi wangwu
(integer) 6
取出元素:(剔除并返回)
127.0.0.1:6379> lpop users
"wuwu"
Redis的Set结构与Java中的HashSet
类似,可以看做是一个value为null的HashMap。因为也是一个hash表,因此具备与HashSet
类似的特征:
演示:添加元素,查看元素:
127.0.0.1:6379> sadd s1 a b c
(integer) 3
127.0.0.1:6379> smembers s1
1) "b"
2) "c"
3) "a"
添加重复元素,会添加失败:
127.0.0.1:6379> sadd s1 a d e
(integer) 2
127.0.0.1:6379> smembers s1
1) "b"
2) "c"
3) "d"
4) "a"
5) "e"
类似的,Set数据结构还支持多个集合的运算:
演示交集操作:
127.0.0.1:6379> sadd s2 a c g h
(integer) 4
127.0.0.1:6379> smembers s1
1) "b"
2) "c"
3) "d"
4) "a"
5) "e"
127.0.0.1:6379> smembers s2
1) "g"
2) "c"
3) "h"
4) "a"
127.0.0.1:6379> sinter s1 s2
1) "c"
2) "a"
Redis的SortedSet是一个可排序的set集合,与Java中的TreeSet
有些类似,但底层数据结构却差别很大。SortedSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加hash表。
SortedSet具备下列特性:
因为SortedSet的可排序特性,经常被用来实现排行榜这样的功能
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/942964
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。