栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis学习笔记(二)之redis的常用五大数据类型,以及其常用命令

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis学习笔记(二)之redis的常用五大数据类型,以及其常用命令

        作者处于学习阶段,刚刚完成redis的学习,作为学生,我会用更通俗的说法,来叙述自己对redis的了解。愿各位大佬看到有见解错误的地方和叙述不好的地方,能够帮忙纠正。来帮助大家更加深入的了解redis。

一、key相关命令

keys *查看所有的key
exists key判断某个key是否存在
type key查看key的类型
del key删除指定的key数据,key和value全部删除
expire key seconds为指定的key设置过期期间,过期时间为seconds秒
ttl key查看给定的key设置过期时间,正数:过期剩余时间,-1:永不过期,-2:已过期
dbsize查看key的数量
flushdb清空当前库
flushall清空所有库

二、 字符串(String)

        1.简介

字符串是最基本的 Redis 值。Redis 字符串是二进制安全的,这意味着 Redis 字符串可以包含任何类型的数据,例如 JPEG 图像或序列化的 Ruby 对象。与我们java中的String所存的类型类似,其中value最多存512MB

        2.常用命令

        

set 添加键值对(当key不存在时,直接添加。存在时,将原有值替换)
get 根据key查询对应value值
append 将value加入key相匹配的value值末尾
strlen key对应value的长度
setnx 当key不存时,添加该键值对
incr 将key中存储的数字值加1,只能对数字操作,如果为空则认为是0+1
decr

将key中存储的数字值减1,只能对数字操作,如果为空则认为是0-1

mset ......可以一次性设置多个键值对
mget ...可以一次性获取多个value值
msetnx 当key都不存在时,才会设置多个键值对

三、列表List

        1.简介

        Redis 列表是简单的字符串列表,按插入顺序排序。可以将元素添加到 Redis 列表中,将新元素推送到列表的头部(左侧)或尾部(右侧)。

        lpush命令在头部插入一个新元素,而 RPUSH在尾部插入一个新元素。当对空键执行此操作之一时,将创建一个新列表。同样,如果列表操作将清空列表,则从键空间中删除键。

        列表的最大长度为 2^32 - 1 个元素(4294967295,每个列表超过 40 亿个元素)。

        Redis Lists 的主要特点是支持恒定时间插入和删除靠近头部和尾部的元素,即使插入了数百万个元素。访问列表的极端附近的元素非常快,但如果您尝试访问一个非常大的列表的中间,则速度很慢,因为这是一个 O(n) 操作。

        2.常用命令

        

lpush/rpush .......从左边/右边插入一个或多个值
lpop/rpop 从左边/右边吐出一个值,当列表空时,则消失
rpoplpush 列表右边吐出一个值,插入到列表左边
lrange 从左边第(start+1)个到右边第(end+1)个结束,当start=0,end=-1时,表示所有
lindex 从左往右数第(index+1)对应的元素
llen 获取列表长度
linsert before 的后面插入
lrem

从左边删除n个value(从左到右)

lset将列表key下标为index的值替换成value

四、集合Set

        1.简介

        Redis Set 是字符串的无序集合。可以在 O(1) 中添加、删除和测试成员的存在(无论集合中包含的元素数量如何,都是恒定的时间)。

        Redis Set 具有不允许重复成员的理想属性。多次添加相同的元素将导致集合具有该元素的单个副本。实际上,这意味着添加成员不需要检查是否存在然后添加操作。

        Redis Sets 的一个非常有趣的地方是,它们支持许多服务器端命令来从现有集合开始计算集合,因此您可以在很短的时间内进行集合的并集、交集、差集。

集合中的最大成员数为 2^32 - 1(4294967295,每组超过 40 亿个成员)。

         

sadd ......将一个或多个value元素加入到集合Key中,已经存在的value会被忽略
smembers 取出该集合的所有值
sismember 判断集合中是否为含有值,有返回1,没有返回0
scard返回该集合的元素个数
srem ....删除集合中的一个或多个元素
spop 随机从该集合中吐出一个值。
srandmember 随机从该集合中取出n个值。不会从集合中删除
smove 将source集合中的值value移动到destination集合中
sinter 返回两个集合的交集元素
sunion 返回两个集合的并集元素
sdiff

key1中与key2不同的元素

五、 哈希(Hash)

        1.简介

        哈希是字符串字段和字符串值之间的映射,因此它们是表示对象的完美数据类型(例如,具有许多字段的用户,如姓名、姓氏、年龄等),类似于JAVA中的Map集合。

        具有几个字段(其中几个字段意味着最多一百个左右)的哈希以占用非常少的空间的方式存储,因此您可以在一个小型 Redis 实例中存储数百万个对象。

        虽然哈希主要用于表示对象,但它们能够存储许多元素,因此您也可以将哈希用于许多其他任务。

        每个散列最多可以存储 2^32 - 1 个字段值对(超过 40 亿个)。

        

hset 给集合中的  键赋值
hget 从集合取出
hmset ...为集合中多个键复制
hexists查看集合中,field 是否存在
hkeys 遍历出集合中所有的field
hvals 遍历出集合中所有的value
hincrby 为集合中的field 的值加上增量increment
hsetnx 将集合中的field的值设置为 value ,并且只有当field不存在时

 六、有序集合(sorted set)

        1.简介

        sorted set与set集合类似,是字符串的非重复集合。不同之处在于,Sorted Set 的每个成员都与一个分数相关联,用于保持sorted set的顺序,从最小到最大的分数。虽然成员是唯一的,但分数可能会重复。

        您可以以非常快速的方式添加、删除或更新元素(时间与元素数量的对数成正比)。由于元素是按顺序存储的,而不是事后排序的,因此您还可以通过分数或排名(位置)以非常快速的方式获取范围。访问 Sorted Set 的中间也非常快,因此您可以将 Sorted Sets 用作非重复元素的智能列表,您可以在其中快速访问所需的一切:元素按顺序、快速存在测试、快速访问中间元素!

        2.常用命令

zadd 

将一个或多个 member 元素及其 score 值加入到有序集 key 当中
zrange   [WITHSCORES]

返回有序集 key 中,下标在之间的元素

带WITHSCORES,可以让分数一起和值返回到结果集

zrangebyscore key minmax [withscores] [limit offset count]

返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。

zrevrangebyscore key maxmin [withscores] [limit offset count]返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从大到小)次序排列。
zincrby  为元素的score加上增量
zrem  删除该集合下,指定值的元素
zcount

统计该集合,分数区间内的元素个数

zrank 返回该值在集合中的排名,从0开始

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/873758.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号