integer类型判断是否为空_NoSQL数据库(连载)——03,Redis的五大数据类型

  • Redis数据类型
9ff50aa5c229db7dcda61c51cfb1dad3.png

五大类型

  • Redis五大数据类型—Key
  • Keys *
  • 查询当前库的所有键
  • Exists
  • 判断某个键是否存在
  • Type
  • 查看键的类型
  • Del
  • 删除某个键
  • Expire
  • 为键值设置过期时间,单位秒。
  • Ttl
  • 查看还有多少秒过期,-1表示永不过期,-2表示已过期
  • Move
  • 把键移动到另一个库下
  • Dbsize
  • 查看当前数据库的key的数量
  • Flushdb
  • 清空当前库
  • Flushall
  • 通杀全部库
  • Redis五大数据类型—String
  • String是Redis最基本的类型,可以理解为Memcached一模一样的类型,一个对应key一个对应value
  • String类型是二进制安全的。意味着Redis的String可以包含任何数据。比如图片或者序列化的对象
  • String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M
  • Get
  • 查询对应的键值
  • Set
  • 添加键值对
  • Append
  • 将给定的追加到原值的末尾
  • Strlen
  • 获得值得长度
  • Setnx
  • 只有在key不存在时设置key的值
  • Incr
  • 将key中存储的数字值增1
  • 只能对数字值操作,如果为空,新增值为1
  • Decr
  • 将key中存储的数字值减1
  • 只能对数字值操作,如果为空,新增值为-1
  • Incyby/decrby
  • 将key中储存的数字值增减。自定义步长。
  • Getrange
  • 获得值得范围,类似java中的substring
  • Setranger
  • 用复写所储存的字符串值,从开始
  • Mset……
  • 同时设置一个或多个key-value对
  • Mget…….
  • 同时获取一个或者多个value
  • Msetnx…….
  • 同时设置一个或多个key-value对,并且仅当所有给定key都不存在。
  • Setex
  • 设置兼职的同时,设置过期时间,单位秒。
  • Get
  • 以新换旧,设置了新值同时获得旧值。
  • 原子性
f8e9bad92da373d9301611ecda3a3522.png
  • Redis五大数据类型—list
  • 单键多值
  • Redis列表是简单的字符串列表,按照插入的顺序排序,
  • 可以添加一个元素到列表的头部(左边)或者尾部(右边)
  • 它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标操作中间的节点性能会较差
568ca7a89e0d89c644eaccb35bbacece.png
  • Lpush/rpush
  • 从左边/右边插入一个或者多个值,
  • 这个命令相当于创建了一个list集合,例如:
  • Rpush k1 yuyang ai caihuolian
  • 上面的命令是,从list集合的右边依次插入三个value值“yuyang ai caihuolian”
  • 实际存储到内存的数据结构是:
1f8c7eef76aca57cbb029936d3d55cb1.png
  • 反之,如果从左边插入:lpush k1 yuyang ai caihuolian
415b320814968565106bbe818cf08b9a.png
  • 总结:lpush和rpush是将value值一个个的从一面放入进list集合的,比如从右边方,先把yuyang放进右边的第一个位置,然后把ai放进右边第一个位置,但是右边第一个位置已经被yuyang占用了,只能先把yuyang往左边移动一个位置,空出右边第一个位置,然后放入ai,当放入caihuolian的时候,需要先把yuyang再往左边移动一个位置,然后ai也往左边移动一个位置,这样子,右边第一个位置就空出来,放入caihuolian。从左边开始放入道理一样。
  • Lpop/rpop
  • 从左边/右边吐出一个值。
  • 此处需要注意,是吐出,不是查询,吐出的意思是当这个值被吐出以后,list集合中就没有这个值了。
  • 值在键在,值光键亡
  • 此处需要注意,当把list集合中的值都吐光了以后,这个list集合对应的key也会自动被回收
  • Rpoplpush
  • 从对应list集合的右边吐出一个值放入到对应list集合的左边
  • 命令演示:
e3d14392fbf50b1342d026253b7b735f.png
  • 说明:将两组value分别从右边放入对应的k1和k2集合中
  • 执行命令:rpoplpush ,将k1集合右边的值吐出来放入到k2集合的左边
  • 为了验证操作是否成功,执行:lpop k2,将k2集合左边的值吐出查看,操作成功
  • Lranger
  • 按照索引下表查询元素(从左到右)
  • 按照范围查找
  • Lindex
  • 按照索引下标查询元素(从左到右)
  • 指定确定下标查找
  • Llen
  • 获得列表长度
  • list中有多少个值
  • Linsertbefore
  • 在的后面插入插入值
7e6c286ceb57f28f588334ca97cd2806.png
  • Lrem
  • 从左边删除n个value(从左到右)
731a81e18d03426d89a2d59bd780241f.png
  • Redis五大数据类型—set
  • Redis set对外提供的功能与list类似,是一个列表的集合,相较于list集合特殊之处在于,set是可以自动排重的,当需要存储一个不重复的数据时,使用set集合是一个非常好的选择,并且set集合提供了判断某个value是否在set集合内的重要接口,这个也是list集合不能提供的。
  • Redis set是string类型的无序集合。它底层是一个value为null的hash表,所以添加、删除、查找的复杂度都是O(1)。
  • Sadd…….
  • 将一个或者多个member元素加入到集合key当中,已经存在于集合的member元素将被忽略。
  • Smenbers
  • 取出该集合的所有值
  • Sismember
  • 判断集合是否为含有该值,有返回1,没有返回0.
  • 命令演示:
024a40c5406c3a8a655d54a4f928cdb2.png
  • Scard
  • 返回该集合的个数
  • Srem…
  • 删除集合中的某个元素
  • Spop
  • 随机从该集合中吐出一个值
  • Srandmember
  • 随机从该集合中取出n个值
  • 不会从集合中删除这个值,相当于查询返回
  • 命令演示:
eef784ead8642367dc4acbd751a3643d.png
  • Smove
  • 将key1集合里的值移动到key2集合中
  • Sinter
  • 返回两个集合的交集元素
  • Sunion
  • 返回两个集合的并集元素
  • 将两个集合合并为一个新的set集合,并返回新set集合的元素
  • Sdiff
  • 返回两个集合的差集元素
  • 实际上是:
  • 如果key1集合和key2集合有重复的元素,返回去除重复元素后的key1集合元素,如果没有重复的元素,则返回key1集合元素
  • 命令演示:
b8e93ab803a5632a820c0e79b63104da.png
  • Redis五大数据类型—zset
  • Redis有序集合zset与普通set非常相似,是一个没有重复元素的字符串集合。 :有序集合的每个成员都关联一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分是可以重复的。
  • 因为元素是有序的,所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。访问有序集合的中间元素也是非常快的,因此能够使用有序集合作为一个没有重复成员的智能列表。
  • Zadd
  • 将一个或多个member元素及其score值加入到有序集合key当中
  • Zranger[withscores]
  • 返回有序集合key中,下表在之间的元素
  • 带withscores,可以让分数一起喝值返回到结果集。
  • Zrangebyscore key min max[withscore][limit offset count]
  • 返回有序集合key中,所有score值介于min和max之间的成员(包含边界),有序集合按score值递增(从小到大)次序排列。
  • Zrevrangebyscore key max min[withscore][limit offset count]
  • 同上,改为从大到小排列
  • 命令演示:
5bce4e0cbf37353201fb0616ecba8cb0.png
  • Zincrby
  • 为元素的score加上增量
  • Zrem
  • 删除key集合下,指定的value值
  • Zcount
  • 统计该集合,分数区间内的元素个数
  • Zcard
  • 获取key集合元素的个数
  • Zrank
  • 返回改值在集合中的排名,从0开始
  • 命令演示:
959341fb6919216e2a3e520a39b206e2.png
  • Redis五大数据类型—hash
  • Redis hash 是一个键值对集合
  • Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象
  • 类似JAVA里面的Map
325a754f832ebecbead8ad640018ee11.png
  • Hset
  • 给集合中的键赋值
  • Hget
  • 从集合中取出value
  • Hmset…..
  • 批量设置hash的值
  • 命令操作:
6ddaa7b536e662c8db78f8c46eb455da.png
  • Hexists
  • 查看哈希表key中,给定域field是否存在
  • 存在返回1,不存在返回0
  • Hkeys
  • 列出该hash集合的所有field
  • 根据key查询所有field
  • Hvals
  • 列出该hash集合的所有value
  • 根据key查询所有value
  • Hincrby
  • 为哈希表key中的域field的值加上增量increment
  • 只能对integer类型的value值操作,在原值基础上增加increment
  • Hsetnx
  • 奖哈希表key中的域field的值设置为value,当且仅当域field不存在
  • 相当于对象增加了属性
  • 命令演示:
9bc9849516cc5c12d1078dce084e8941.png

写的错误的地方,一定要帮我留言指正喔,谢谢你

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值