关于网站建设的调查报告重庆工程交易信息网

news/2025/10/2 11:49:15/文章来源:
关于网站建设的调查报告,重庆工程交易信息网,263企业邮箱报价,wordpress cdn jquery文章目录 String简单介绍常见命令应用场景 Hash简单介绍常见命令应用场景 List简单介绍常见命令应用场景 Set简单介绍常见命令应用场景 Sorted Set(Zset)简单介绍常见命令应用场景 Bitmap简单介绍常见命令应用场景 附录 Redis支持多种数据类型#xff0c;比如String、hash、li… 文章目录 String简单介绍常见命令应用场景 Hash简单介绍常见命令应用场景 List简单介绍常见命令应用场景 Set简单介绍常见命令应用场景 Sorted Set(Zset)简单介绍常见命令应用场景 Bitmap简单介绍常见命令应用场景 附录 Redis支持多种数据类型比如String、hash、list、Set、SortedSet、Streams、Bitmap、Hyperloglog、Geo物理位置等等在 官网也给出了说明本博客就挑一些比较常有的数据类型说说本文例子基于Redisson实现 String 简单介绍 在Redis中所有的数据都是key-value的数据结构存储的那么在Redis中这个string类型的value值只能存储String类型的数据其实不然redis中string类型的value值是可以支持多种类型的比如String、Number、Float、Bits等等但是最大还是只能存储512M。Redis中key也是string类型存储的所以最大也只能存储512M 常见命令 set、get命令就不演示了下面给出一些常有命令 批量设置多个key mset tkey1 tvalue tkey2 111批量获取多个key值 mget tkey1 tkey2获取长度 strlen tkey字符串后面追加内容 append tkey tstring获取指定范围的字符 # 取0~3之间的字符返回1tst getrange tkey 0 3key进行递增(整数) # 返回1 incr ikey # 递增指定大小的值返回124 incrby ikey 124key进行递增(浮点数) # 设置初始浮点数值 set fkey 1.2 # 在原来基础上递增2.4返回3.6 incryfloat fkey 2.4加上key过期时间 expire tkey 10分布式锁实现set if not exists可以使用setnx单个命令也可以使用set结合nx命令来实现 # set tkey过期时间10秒nx如果键不存在时设置 set tkey aaa ex 10 nx # setnx命令相当于set和nx命令一起用 setnx tkey aaaEX 设置指定的到期时间(以秒为单位)。 PX : 设置指定的到期时间(以毫秒为单 NX 仅在键不存在时设置键。 XX 只有在键已存在时才设置。 String 更多指令请参考官网文档https://redis.io/commands/?groupstring 应用场景 对于Redis String类型的应用场景也比较多比如很常有的做缓存处理也可以用于分布式锁、分布式ID 分布式锁的实现主要依赖于命令setnx 分布式ID主要是利用incr这个命令 基于Redis实现一个分布式ID生成器 package com.example.redis.common.handlers;import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component;import javax.annotation.Resource;/*** pre* Redis分布式ID生成器* /pre** pre* 修改记录* 修改后版本: 修改人 修改日期: 2023/11/07 14:18 修改内容:* /pre*/ Component public class RedisIdentifierGenerator implements IdentifierGenerator {Resourceprivate RedisTemplate redisTemplate;Overridepublic Number nextId(Object entity) {String key entity.getClass().getName();return redisTemplate.opsForValue().increment(key);}} Hash 简单介绍 Hash哈希数据类型也是一种比较常见的数据结构相对于Redis的string类型而言其实就是多了一层key(field)所以说只要string类型适用的场景hash都是支持的 常见命令 hash设置key为hkeyfield为a的值 hset hkey a aaaa获取hkey的field值 hget hkey a设置多个field值 hmset hkey a 1 b 2 c 3 d 4获取多个field值 hmget hkey a b c d获取key所有的field hkeys hkey获取key所有field的值 hvals hkey获取key所有fileld和值 hgetall hkey给key某个字段field添加值 hincrby hkey a 10对于Hash的更多命令请参考https://redis.io/commands/?grouphash 应用场景 对于hash的应用场景其实只要redis string类型适用的hash都是适用的不过hash这种特殊的数据结构还是适用于一些特殊场景的 存储一个对象类的数据这个对象的多个字段就对应hash的field存储一些统计类的数据比如访问量、点击量等等 如图如果要统计博客的pv、uv还有评论数量(evaluation_count)随着博客数量的增加存储到数据库里后面肯定会查询比较慢所以可以使用redis进行缓存 使用Redisson来写一个例子 Resourceprivate RedissonClient redissonClient;Testvoid contextLoads() throws ExecutionException, InterruptedException {RMapObject, Object redissonClientMap redissonClient.getMap(recordMap);MapString,Integer map new HashMap();map.put(pv , 1000);map.put(uv , 1500);map.put(evaluation_count,30)redissonClientMap.putAll(map);System.out.println(redissonClientMap.addAndGet(pv, 2));} List 简单介绍 redis中的数据类型存储有序的字符串列表元素是可以重复列表的最大长度为2^32-1个元素4294967295即每个列表超过40亿个元素 常见命令 左右添加元素 # 左边添加元素 lpush queueList a lpush queueList b c# 右边添加元素 rpush queueList d e 左右弹出第一条 # 左边弹出一个元素 lpop queueList # 右边弹出一个元素 rpop queueList左右弹出一个元素并且设置超时直到无数据弹出或者超时 blpop queueList 10 brpop queueList 10应用场景 微信公众号、微博等消息流列表 RDequeObject recordList redissonClient.getDeque(recordList); recordList.addFirst(1.新闻1); recordList.addFirst(2.新闻2); recordList.addFirst(3.新闻3); IntStream.range(0,3).forEach(a-{System.out.println(recordList.poll()); });消息队列使用redis也可以实现消息队列比如使用rpush/lpop实现简单队列blpop或者是brpop来实现阻塞读取队列补充说明同时stream、pub/sub(订阅发布模式)、sortedSet等等也是可以实现的 不过还是不建议使用Redis来实现消息队列因为我们已经有成熟的MQ框架使用redis实现队列有可能有下面的问题 存在内存可能会有数据丢失不能重复消费消费后不能回应没有ack确认机制 Set 简单介绍 Redis中的Set类型是无序集合最大存储数量为2^32-1大概有40亿左右添加、删除元素的时间复杂度都是O(1) 常见命令 添加一个或者多个元素 sadd skey a b c d e f g h获取所有的元素 smembers skey获取集合元素的个数 scard skey随机获取一个元素 srandmember skey随机弹出一个元素 spop skey弹出指定的元素 # 如果两个元素都有返回2 srem skey a g检查元素是否存在 # 元素存在返回1 sismember skey e获取前一个集合有而后面一个集合没有的元素 sdiff skey skey1获取集合的交集 sinter skey skey1获取集合的并集 sunion skey skey1Set的更多命令请参考https://redis.io/commands/?groupset 应用场景 抽奖程序利用spop跟standmember随机弹出元素 RSetString recordSet redissonClient.getSet(recordSet); ListString members Lists.newArrayList(alice, tim,tom , 风清扬, jack ); recordSet.addAll(members); RFutureSetString threeSet recordSet.removeRandomAsync(3); RFutureSetString twoSet recordSet.removeRandomAsync(2); RFutureSetString oneSet recordSet.removeRandomAsync(1); System.out.println(三等奖threeSet.get()); System.out.println(二等奖twoSet.get()); System.out.println(一等奖oneSet.get());集合交集sinter、并集sunion的场景可以实现共同关注等场景 RSetObject tom redissonClient.getSet(tom); tom.addAll(Lists.newArrayList(令狐冲,james,风清扬)); RSetObject jack redissonClient.getSet(jack); jack.addAll(Lists.newArrayList(令狐冲,tim,jack)); System.out.println(共同关注的人tom.readIntersectionAsync(jack).get());sadd 集合存储实现点赞、签到的业务场景 Sorted Set(Zset) 简单介绍 相对于set来说sorted set是一种有序的set排序是根据每个元素的score排序的score相同时根据key的ASCII码排序 常见命令 批量添加元素 zadd z1 10 a 20 b 30 c 40 d 50 e 60 f 70 g 80 h 90 i根据分数从低到高 zrange z1 0 -1 withscore根据分数从高到低 zrevrange z1 0 -1 withscores根据分数范围取值 zrangebyscore z1 20 30移除元素 zrem z1 i获取有序集合个数 zcard z1给某个元素加分值 zincrby z1 20 a获取范围内的个数 zcount z1 50 60返回指定元素的索引值 # 假如d元素排在第4位索引值就返回3 zrank z1 d获取元素的分数 zscore z1 hSorted Set的更多命令请参考https://redis.io/commands/?groupsorted_set 应用场景 排行榜 RScoredSortedSetString school redissonClient.getScoredSortedSet(school); school.add(60, tom); school.add(60, jack); school.add(60, tim); school.addScore(tom, 20); school.addScore(jack, 10); school.addScore(tim, 30); RFutureCollectionScoredEntryString collectionRFuture school.entryRangeReversedAsync(0, -1); IteratorScoredEntryString iterator collectionRFuture.get().iterator(); System.out.println(成绩从高到低排序); while(iterator.hasNext()) {ScoredEntryString next iterator.next();String value next.getValue();System.out.println(value); } RFutureCollectionScoredEntryString collectionRFuture1 school.entryRangeReversedAsync(0, 2); IteratorScoredEntryString iterator1 collectionRFuture1.get().iterator(); System.out.println(成绩前三名); while (iterator1.hasNext()) {System.out.println(iterator1.next().getValue()); }Bitmap 简单介绍 位图不是实际的数据类型而是String类型中定义的一种面向位的操作所以这个位图的最大存储量也是512M。可以容纳最少2^32不同的位可以在不同的位置设置0或者1 常见命令 设置位的值 # 将位2设置为1 setbit permit 2 1获取位的值 getbit permit 2获取key的为1的个数 # 获取位为1的总数 bitcount permit获取0或者1的第一位 # 获取key permit 位为1的第一个位置 bitpos permit 1获取多个bitmap的位操作比如 、| # 获取bkey和permit这两个的运算并且赋值给hbit bitop AND hbit bkey permit应用场景 实时的数据统计 比如人员的考勤打卡记录例如学生tom每次来上课就将相关的位记录位1 假如当月的第一天、第五天、第十天都来了 setbit tom 1 1 setbit tom 5 1 setbit tom 10 1如何每月考勤统计一下这个用户当月来了几天 bitcount tom 也可以应用于统计一个网站一天有多少用户访问例如用户ID为123、124、125的用户访问了csdn setbit csdn:2023-11-08 123 1 setbit csdn:2023-11-08 124 1 setbit csdn:2023-11-08 125 1 ... # 统计一下当天的访问次数 bitcount csdn:2023-11-08 存储用户权限比如用1来表示有权限0表示没权限使用位图可以节省很大的存储空间 附录 Redis命令查询网站https://redis.io/commands/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

路由器做网站80端口购物网站功能模块图

目录 步骤一:正确连接网线,插电开机正确连接网线: 认识系统灯: 插电开机: 步骤二:开机之后,系统的基本设置 1.进入设置界面: 2.设置辅助热点wifi: 3.设置日常…

网站建设哪里有wordpress的网站怎么保存

1.可放封闭原则 概念:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应该尽量在不修改原有代码的情况下进行扩展 2.里式替换原则 概念:所有引用父类的地方必须能透明地使用其子类的对象 3.依赖倒置原则 概念&#…

青岛网站建设公司外包photoshop免费素材库

一、数据安全的守护神:自动备份文件的重要性 在数字化时代,电脑中的文件承载着我们的工作成果、个人回忆以及众多重要信息。然而,数据丢失的风险无处不在,无论是硬件故障、软件崩溃,还是恶意软件的攻击,都…

AT_abc308_h [ABC308Ex] Make Q

还是比较牛的。 首先枚举一条边,钦定其中一个点,枚举这个点的出边作为 Q,然后再跑一个最小环就是结果了。 注意到此时是 \(O(n^4)\) 的,我们利用线段树分治解决 Floyd 中挖掉一个点求最短路的问题。 同样将枚举点换…

Coze源码分析-资源库-编辑插件-后端源码-核心技术与总结 - 教程

Coze源码分析-资源库-编辑插件-后端源码-核心技术与总结 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Co…

函数-高级用法+闭包

函数:增加代码可读性和重用性定义函数(3种形式): def funk() def funk(a,b) def funk(*args,**kwargs)调用函数(高级用法):1.函数做元素:2种形式 def funk1 ():print(888) def funk2():print(222) conten…

网站数据库怎么建立网站建设合同文百科

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 206. 反转链表 - 力扣(LeetCode) 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 思路一 运用迭代的算法,把头指针…

点云-标注-分类-航线规划软件 (一)点云自动分类 - 实践

点云-标注-分类-航线规划软件 (一)点云自动分类 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

JVM的内存分配策略有哪些?

JVM的内存分配策略主要围绕对象在堆内存中的分配规则展开,核心目标是高效利用内存并减少垃圾回收开销。主要分配策略如下: 1. 优先在Eden区分配 大多数对象在新生代的Eden区中创建。当Eden区没有足够空间时,JVM会触…

网站的功能有哪些公司文化建设的意义

双写机制 问题的出现 在发生数据库宕机时,可能Innodb正在写入某个页到表中,但是这个页只写了一部分,这种情况被称为部分写失效,虽然innodb会先写重做日志,在修改页,但是重做日志中记录的是对页的物理操作,但…

网站网站做代理怎么发展下线太原seo优化公司

论文链接:http://aihuang.org/p/papers/AAAI2018Denoising.pdf来源:AAAI 2018MotivationDistant Supervision 是一种常用的生成关系分类训练样本的方法,它通过将知识库与非结构化文本对齐来自动构建大量训练样本,减少模型对人工标…

网站给部分文字做遮挡代码义乌外贸网站建设

2020年android 仿微信朋友圈 评论1.如果有人问我:那些艰难的岁月你是怎么熬过来的?我想我只有一句话回答:我有一种强大的精神力量支撑着我,这种力量名字叫“想死又不敢”二十、我喜欢转身转得漂亮,放手放得潇洒你在玩以这样的挂念,会悲伤的逃脱11、我嫉…

如何建设英文网站免费建站网站

HYJY系列电压继电器 HYJY-30-01集成电路电压继电器 HYJY-30-01A HYJY-30-01B HYJY-30-02集成电路电压继电器 HYJY-30-02A HYJY-30-02B HYJY-30-03-3集成电路电压继电器 HYJY-30-03-2 HYJY-30-03-1 HYJY-30-02电压继电器(以下简称继电器)用于发…

在Linux系统上一键配置DoH,解决DNS解析被污染

前言 最近我的 swag 服务突然证书 renew 失败 诊断了一下发现原来是无法解析 acme-v02.api.letsencrypt.org 域名 换了几个 DNS 都不行,应该是 DNS 被污染或者劫持了 这时我才意识到不上 DoH/DoT 怕是没办法了🤣 本…

免费网站源码下载器网站开发报价文件

介绍 ai查询 在Java中,动态数组通常通过ArrayList类来实现,它是Java集合框架(Java Collections Framework)的一部分。ArrayList是一个可调整大小的数组实现,提供了比标准数组更多的灵活性和功能。 以下是使用ArrayLis…

大连模板网站制作哪家专业天津专业网站制作流程优势

目录 一.Python 线程队列 Queue 分类二.Python 线程优先队列 PriorityQueue 简介三.Python 线程优先队列 PriorityQueue 函数介绍四.Python 线程优先队列 PriorityQueue 使用五.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 在 线程队列…

服务器搭建网站方案500字淮北人论坛招聘信息

预算2014年院线预算 影城(多选)北京CBD影城 查询 科目蚌埠万达广场店北京CBD影城  营业收入11 票房收入11 卖品收入00 逾期收入00 广告收入00 映前广告00 LCD广告00 阵地收入00 IMAX广告收入00 其他广告收入00 其…

网页设计制作网站模板图片自己做的网站放在服务器哪里

文章目录 一、绪论1.1、数据结构的基本概念1.2、数据结构三要素1.2.1、逻辑结构1.2.2、数据的运算1.2.3、物理结构(存储结构)1.2.4、数据类型和抽象数据类型 二、算法的基本概念2.1、算法的特性2.2、“好”算法的特质2.2.1、算法时间复杂度2.2.2、算法空…

网站商城微信支付wordpress大前端2.0

V90伺服驱动器其它相关介绍,请参考V90控制专栏,常用地址如下: V90 Epos模式下点动控制 https://rxxw-control.blog.csdn.net/article/details/134263795https://rxxw-control.blog.csdn.net/article/details/134263795绝对定位往复运动可以参考下面文章链接: https://rx…

《电路基础》第五章学习笔记

《电路基础》第五章学习笔记本章主要介绍运算放大器。 一个特性与电压控制电压源类似的电子元件。可以对信号进行相加、放大、积分和微分。可以看作增益非常高的电压放大器。运算放大器定义: 运算放大器是一个用于执行…