当前位置: 首页 > news >正文

门户网站字体建设网站的协议范本

门户网站字体,建设网站的协议范本,长安网站建设价格,拍卖行 网站建设一、Redis 简介 Redis 是#xff08;key-value#xff09;的 NoSQL 数据库#xff0c;所有的 key 都是 String ,它的 value 可以是 String、hash、list、set、zset#xff08;有序集合#xff09;、Bitmaps#xff08;位图#xff09;、HyperLogLog、GEO(地理信息定位)…一、Redis 简介 Redis 是key-value的 NoSQL 数据库所有的 key 都是 String ,它的 value 可以是 String、hash、list、set、zset有序集合、Bitmaps位图、HyperLogLog、GEO(地理信息定位)等数据类型这些类型都支持 push/pop、add/remove 及取交集和差集。而且这些操作都是原子性的。 Redis 的数据是缓存在内存中但是 Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件中。在此基础上实现了 master-slave 主从同步 主从复制 Redis 提供复制功能能实现多个相同数据的 Redis 副本复制功能是分布式 Redis 的基础 删除数据命令 # 删除指定的 key 数据 del key # 根据 value 选择非阻塞删除也就是现在是将 keys 从 keyspace 元数据中删除真正的删除会在后续异步操作 unlink key 二、Redis 的数据类型 2.1 String redis 中最基本的数据结构所有的 key 都是 String 。String 类型的 Value 可以是 String、数字、jpg图片或者序列化的对象值不能超过 512MB 常见命令 set key value [ex seconds][px milliseconds][nx|xx]: 设置给定键和值 get key : 获取值 del key 删除存储在给定键中的值 incr key : 将 key 对应的值加1 decr key : 将 key 对应的值减1 incrby key amount: 将key 对应的值加上整数 decrby key amount将key 对应的值减去整数 应用场景 缓存可以将常见的字符串、图片等信息缓存在 redismysql 作为持久化层。降低 mysql 的读写压力 计数器 实现快速计数、查询缓存同时数据可以异步落地到其他数据源。 共享Session分布式服务器将用户的 Session 进行集中的管理每次用户更新或者查询登录信息都直接从 Redis 中集中获取。 2.2 Hash 哈希类型指的是 value 本身又是一个键值对结构比如 value {{field1, value1}, … {fieldN, valueN}}。 常见命令 hset hash-key sub-key1 value1 添加键值对hget hash-key key1 : 获取制定散列键的值hgetall hash-key 获取哈希中包含的所有键值对hdel hash-key sub-key1 在哈希中移除这个键 应用场景 缓存能够更加直观相比 String 来说更加节省空间。比如缓存用户信息 2.3 List Redis 中的 List 采用双端链表来实现可以用来存储多个有序的字符创列表最多可以存储 2^32 - 1 个元素element。可以对列表两端插入(push)和弹出(pop)还可以获取制定范围的元素列表获取指定索引下标的元素等。列表是一种比较灵活的数据结构它可以充当栈和队列的角色。 常见命令 rpush, lpush 分别是右边和左边插入linsert 命令会从列表中找到等于某个值的元素在其前或者后插入新的元素。可以转换成其他的数据结构 lpushlpopStack(栈)lpushrpopQueue队列lpushltrimCapped Collection有限集合lpushbrpopMessage Queue消息队列 应用场景 消息队列lpush brpop组合可以实现阻塞队列生产者使用 lpush 从左侧插入元素多个消费者使用 brpop 阻塞式抢列表尾部的元素。保证消费的负载均衡和高可用性 2.4 set set 类型是用来保存多个字符串元素但是 set 中不允许有重复元素并且集合中的元素是无序的不能通过索引下标获取元素。它的底层是通过哈希表来实现的因此添加、删除、查找的复杂度都是 O(1) 常见命令 sadd key value : 向集合中添加一个或者多个成员scard key : 获取集合中的成员数smember key member : 返回集合中的所有成员sismember key member 判断 member 元素是否是集合 key 的成员 应用场景 标签给用户添加标签所有这样有同一标签或者类似的可以推荐关注的事情或者关注的人 2.5 zset 有序集合 zset 相对于 set 而言其内部的元素可以进行排序它是通过给每个元素设置一个分数来作为排序的依据。 常见命令 zadd zset-key int member1 : 将一个带有给定分值的成员添加到有序的集合中zrange zset-key 0-1 : 根据元素在有序集合中所处的位置从有序集合中获取对应的元素zrem zset-key member1 : 如果给定元素存在于有序集合中就移除该元素 应用场景 排行榜榜单可以按照用户关注数更新时间等打分并做排行 2.6 HyperLogLogs HyperLogLog并不是一种新的数据结构实际类型为字符串类 型而是一种基数算法通过HyperLogLog可以利用极小的内存空间 完成独立总数的统计比如注册IP u数每日访问IP 数等等。它是一个基于基数估算的算法只能比较准确的估算出基数可以使用少量固定的内存去存储并识别集合中的唯一元素。而且这个估算的技术并不一定准确它是一个带有0.81%标准错误的近似值对于一些可以接受容错的业务场景可以忽略不计 例如2016-03-06的访问用户是 uuid-1、uuid-2、uuid-3、uuid-42016-03-05的访问用户是uuid-4、uuid-5、uuid-6、uuid-7如图所示。 常用命令 pfadd 用于在基数统计中添加元素添加成功会返回1 pfcount用于计算一个或者多个 HyperLogLogs 的独立总数 pfmerge求出多个HyperLogLogs 的并集并赋值给 destkey 应用场景 IP 数 : 用于统计某个时段的 IP 或者用户数 2.7 Bitmaps 它本身不是一种数据结构实际上就是字符串但是它可以对字符串的位进行操作 Bitmaps 相当于一个以位为单位的数组数组的每个单元只能存储0 和 1 , 数组的下标在 Bitmaps 中叫做偏移量。 常用命令 setbit key offset value : 设置键和偏移量的值getbit key offset: 获取键的第 offset 位的值bitcount key : 统计该键的次数值 应用场景 活跃用户分析 存储和统计一天中活跃的用户 2.8 Geo Redis3.2版本提供了GEO地理信息定位功能支持存储地理位 置信息用来实现诸如附近位置、摇一摇这类依赖于地理位置信息的功能 常用命令 geoadd: 添加地理位置信息 geopos: 获取地理位置信息 geodist: 获取两个地理位置的距离 ​ georadius: 获取范围内的信息位置集合–附近的人 geohash: 将二维经纬度转换为一维的字符串 zrem: 删除地理位置信息实际上是利用 zset 中的命令实现对位置信息的删除 应用场景 附近的人推算两地之间的距离 三、Redis 的数据结构 为什么 Redis 会设计 RedisObject 对象因为操作数据类型的命令除了要对键的类型进行检查以外还需要根据数据类型的不同编码进行多态处理所以 Redis 构建了自己的类型系统主要有: redisObject 的对象机制redisObject 对象的类型检查和多态对 redisObject 进行分配、共享和销毁的机制 3.1 redisObject 的对象机制 /* * Redis对象 */ typedef struct redisObject {//类型unsigned type:4;//编码方式unsigned encoding:4;//LRU 记录最后一次访问时间unsigned lru:LRU_BITS;//引用计数int refcount;//指向底层数据结构实例void *ptr} robj;type属性 记录了对象所保存的值类型也就是常用的五个数据类型 /* * 对象类型 */ #define OBJ_STRING 0 // 字符串 #define OBJ_LIST 1 // 列表 #define OBJ_SET 2 // 集合 #define OBJ_ZSET 3 // 有序集 #define OBJ_HASH 4 // 哈希表 encoding 属性 记录了对象所保存的值的编码表示数据类型对应的编码类型 /* * 对象编码 */ #define OBJ_ENCODING_RAW 0 /* Raw representation */ #define OBJ_ENCODING_INT 1 /* Encoded as integer */ #define OBJ_ENCODING_HT 2 /* Encoded as hash table */ #define OBJ_ENCODING_ZIPMAP 3 /* 注意版本2.6后不再使用. */ #define OBJ_ENCODING_LINKEDLIST 4 /* 注意不再使用了旧版本2.x中String的底层之一. */ #define OBJ_ENCODING_ZIPLIST 5 /* Encoded as ziplist */ #define OBJ_ENCODING_INTSET 6 /* Encoded as intset */ #define OBJ_ENCODING_SKIPLIST 7 /* Encoded as skiplist */ #define OBJ_ENCODING_EMBSTR 8 /* Embedded sds string encoding */ #define OBJ_ENCODING_QUICKLIST 9 /* Encoded as linked list of ziplists */ #define OBJ_ENCODING_STREAM 10 /* Encoded as a radix tree of listpacks */ * ptr 指针 它指向实际保存值的数据结构而数据结构类型是由前面的 encoding 和 type 两个属性来决定。如下图数据类型和编码类型决定指向实际的数据结构。 lru 属性 记录的是对象最后一次被命令程序访问的时间那么如何实现对对象的回收这里引入一个概念空转时长 空转时长也就是当前系统时间减去 键的值对象的 LRU 时间。如果服务器用于回收内存的算法是 Volatile-lru 或者 allkeys-lru。那么当服务器占用的内存树超过了 maxmemory 选项所设置的上限值时空转时长较高的那部分键会优先被服务器所释放。 refcount 属性 用于计数对指向这个对象的引用计数。 比如创建了一个值为 100 的 key A 使用 OBJECT REFCOUNT 命令查看 key A 的值对象的引用计数 refcount 发现引用计数为 2说明这个值对象被两个程序所引用两个程序共享了这个值对象的 key 那么当对象的 refcount 值为 0 时这个对象将会被内存回收释放这也是对象的销毁机制。对应 JVM 里面的引用计数法标记 3.2 redis 命令的类型检查和多态 redis 当执行一个处理数据类型命令时比如 LPOP key 命令redis 执行的步骤 根据给定的 key在数据库字典中查找对应的 redisObject 对象没找到就返回null检查找到的 redisObject 的 type 属性和执行命令所需要的类型是否相同如果不相同就返回类型错误根据 redisObject 的 encoding 属性所指定的编码选择合适的操作函数来处理底层的数据结构最后返回命令的操作结构 3.3 redisObject 对象共享和销毁 共享对象的出现是为了避免重复分配的麻烦。通过 refcount 来表示对象所引用的次数。比如创键一个 值为 100 的 key A然后再创建一个值为 100 的 key B 这个时候共享对象的引用计数值变为了 3 redis SET A 100 OK redis SET B 100 OK redis OBJECT REFCOUNT A (integer) 3此外共享对象不单单只有字符串键可以使用 那些在数据结构中嵌套了字符串对象的对象linkedlist 编码的列表对象、 hashtable 编码的哈希对象、 hashtable 编码的集合对象、以及 zset 编码的有序集合对象都可以使用这些共享对象。 为什么redis 不共享包含value 为字符串的对象 当服务器考虑将一个共享对象设置为键的值对象时 程序需要先检查给定的共享对象和键想创建的目标对象是否完全相同 只有在共享对象和目标对象完全相同的情况下 程序才会将共享对象用作键的值对象 而一个共享对象保存的值越复杂 验证共享对象和目标对象是否相同所需的复杂度就会越高 消耗的 CPU 时间也会越多 如果共享对象是保存整数值的字符串对象 那么验证操作的复杂度为 O(1) 如果共享对象是保存字符串值的字符串对象 那么验证操作的复杂度为 O(N) 如果共享对象是包含了多个值或者对象的对象 比如列表对象或者哈希对象 那么验证操作的复杂度将会是 O(N^2) 。 因此 尽管共享更复杂的对象可以节约更多的内存 但受到 CPU 时间的限制 Redis 只对包含整数值的字符串对象进行共享。 引用计数及对象的销毁 前面谈到过redisObject 中带有一个 refcount 属性表示这个对象被引用了多少次。 当对象被新程序共享时其 refcount 值加1当使用完一个对象后或者消除一个对象的引用后程序将对象的 refcount 值减1当对象的 refcount 降为0 时这个 redisObject 结构以及它所引用的数据结构的内存都会被释放 四、参考资料 《redis 开发与运维》 付磊《redis 设计与实现》 黄健宏https://pdai.tech/md/db/nosql-redis/db-redis-x-redis-object.html 这里写自定义目录标题 一、Redis 简介二、Redis 的数据类型2.1 String常见命令应用场景 2.2 Hash常见命令应用场景 2.3 List常见命令应用场景 2.4 set常见命令应用场景 2.5 zset常见命令应用场景 2.6 HyperLogLogs常用命令应用场景 2.7 Bitmaps常用命令应用场景 2.8 Geo常用命令应用场景 三、Redis 的数据结构3.1 redisObject 的对象机制type属性encoding 属性* ptr 指针lru 属性refcount 属性 3.2 redis 命令的类型检查和多态3.3 redisObject 对象共享和销毁为什么redis 不共享包含value 为字符串的对象引用计数及对象的销毁 四、参考资料 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持除了标准的Markdown编辑器功能我们增加了如下几点新功能帮助你用它写博客 全新的界面设计 将会带来全新的写作体验在创作中心设置你喜爱的代码高亮样式Markdown 将代码片显示选择的高亮样式 进行展示增加了 图片拖拽 功能你可以将本地的图片直接拖拽到编辑区域直接展示全新的 KaTeX数学公式 语法增加了支持甘特图的mermaid语法1 功能增加了 多屏幕编辑 Markdown文章功能增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能功能按钮位于编辑区域与预览区域中间增加了 检查列表 功能。 功能快捷键 撤销Ctrl/Command Z 重做Ctrl/Command Y 加粗Ctrl/Command B 斜体Ctrl/Command I 标题Ctrl/Command Shift H 无序列表Ctrl/Command Shift U 有序列表Ctrl/Command Shift O 检查列表Ctrl/Command Shift C 插入代码Ctrl/Command Shift K 插入链接Ctrl/Command Shift L 插入图片Ctrl/Command Shift G 查找Ctrl/Command F 替换Ctrl/Command G 合理的创建标题有助于目录的生成 直接输入1次#并按下space后将生成1级标题。 输入2次#并按下space后将生成2级标题。 以此类推我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。 如何改变文本的样式 强调文本 强调文本 加粗文本 加粗文本 标记文本 删除文本 引用文本 H2O is是液体。 210 运算结果是 1024. 插入链接与图片 链接: link. 图片: 带尺寸的图片: 居中的图片: 居中并且带尺寸的图片: 当然我们为了让用户更加便捷我们增加了图片拖拽功能。 如何插入一段漂亮的代码片 去博客设置页面选择一款你喜欢的代码片高亮样式下面展示同样高亮的 代码片. // An highlighted block var foo bar;生成一个适合你的列表 项目 项目 项目 项目1项目2项目3 计划任务 完成任务 创建一个表格 一个简单的表格是这么创建的 项目Value电脑$1600手机$12导管$1 设定内容居中、居左、居右 使用:---------:居中 使用:----------居左 使用----------:居右 第一列第二列第三列第一列文本居中第二列文本居右第三列文本居左 SmartyPants SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如 TYPEASCIIHTMLSingle backticksIsnt this fun?‘Isn’t this fun?’QuotesIsnt this fun?“Isn’t this fun?”Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash 创建一个自定义列表 Markdown Text-to- HTML conversion tool Authors John Luke 如何创建一个注脚 一个具有注脚的文本。2 注释也是必不可少的 Markdown将文本转换为 HTML。 KaTeX数学公式 您可以使用渲染LaTeX数学表达式 KaTeX: Gamma公式展示 Γ ( n ) ( n − 1 ) ! ∀ n ∈ N \Gamma(n) (n-1)!\quad\forall n\in\mathbb N Γ(n)(n−1)!∀n∈N 是通过欧拉积分 Γ ( z ) ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)∫0∞​tz−1e−tdt. 你可以找到更多关于的信息 LaTeX 数学表达式here. 新的甘特图功能丰富你的文章 #mermaid-svg-1W0t4dwqSftsDRmV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-1W0t4dwqSftsDRmV .error-icon{fill:#552222;}#mermaid-svg-1W0t4dwqSftsDRmV .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-1W0t4dwqSftsDRmV .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-1W0t4dwqSftsDRmV .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-1W0t4dwqSftsDRmV .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-1W0t4dwqSftsDRmV .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-1W0t4dwqSftsDRmV .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-1W0t4dwqSftsDRmV .marker{fill:#333333;stroke:#333333;}#mermaid-svg-1W0t4dwqSftsDRmV .marker.cross{stroke:#333333;}#mermaid-svg-1W0t4dwqSftsDRmV svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-1W0t4dwqSftsDRmV .mermaid-main-font{font-family:"trebuchet ms",verdana,arial,sans-serif;font-family:var(--mermaid-font-family);}#mermaid-svg-1W0t4dwqSftsDRmV .exclude-range{fill:#eeeeee;}#mermaid-svg-1W0t4dwqSftsDRmV .section{stroke:none;opacity:0.2;}#mermaid-svg-1W0t4dwqSftsDRmV .section0{fill:rgba(102, 102, 255, 0.49);}#mermaid-svg-1W0t4dwqSftsDRmV .section2{fill:#fff400;}#mermaid-svg-1W0t4dwqSftsDRmV .section1,#mermaid-svg-1W0t4dwqSftsDRmV .section3{fill:white;opacity:0.2;}#mermaid-svg-1W0t4dwqSftsDRmV .sectionTitle0{fill:#333;}#mermaid-svg-1W0t4dwqSftsDRmV .sectionTitle1{fill:#333;}#mermaid-svg-1W0t4dwqSftsDRmV .sectionTitle2{fill:#333;}#mermaid-svg-1W0t4dwqSftsDRmV .sectionTitle3{fill:#333;}#mermaid-svg-1W0t4dwqSftsDRmV .sectionTitle{text-anchor:start;font-family:'trebuchet ms',verdana,arial,sans-serif;font-family:var(--mermaid-font-family);}#mermaid-svg-1W0t4dwqSftsDRmV .grid .tick{stroke:lightgrey;opacity:0.8;shape-rendering:crispEdges;}#mermaid-svg-1W0t4dwqSftsDRmV .grid .tick text{font-family:"trebuchet ms",verdana,arial,sans-serif;fill:#333;}#mermaid-svg-1W0t4dwqSftsDRmV .grid path{stroke-width:0;}#mermaid-svg-1W0t4dwqSftsDRmV .today{fill:none;stroke:red;stroke-width:2px;}#mermaid-svg-1W0t4dwqSftsDRmV .task{stroke-width:2;}#mermaid-svg-1W0t4dwqSftsDRmV .taskText{text-anchor:middle;font-family:'trebuchet ms',verdana,arial,sans-serif;font-family:var(--mermaid-font-family);}#mermaid-svg-1W0t4dwqSftsDRmV .taskTextOutsideRight{fill:black;text-anchor:start;font-family:'trebuchet ms',verdana,arial,sans-serif;font-family:var(--mermaid-font-family);}#mermaid-svg-1W0t4dwqSftsDRmV .taskTextOutsideLeft{fill:black;text-anchor:end;}#mermaid-svg-1W0t4dwqSftsDRmV .task.clickable{cursor:pointer;}#mermaid-svg-1W0t4dwqSftsDRmV .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-1W0t4dwqSftsDRmV .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-1W0t4dwqSftsDRmV .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:bold;}#mermaid-svg-1W0t4dwqSftsDRmV .taskText0,#mermaid-svg-1W0t4dwqSftsDRmV .taskText1,#mermaid-svg-1W0t4dwqSftsDRmV .taskText2,#mermaid-svg-1W0t4dwqSftsDRmV .taskText3{fill:white;}#mermaid-svg-1W0t4dwqSftsDRmV .task0,#mermaid-svg-1W0t4dwqSftsDRmV .task1,#mermaid-svg-1W0t4dwqSftsDRmV .task2,#mermaid-svg-1W0t4dwqSftsDRmV .task3{fill:#8a90dd;stroke:#534fbc;}#mermaid-svg-1W0t4dwqSftsDRmV .taskTextOutside0,#mermaid-svg-1W0t4dwqSftsDRmV .taskTextOutside2{fill:black;}#mermaid-svg-1W0t4dwqSftsDRmV .taskTextOutside1,#mermaid-svg-1W0t4dwqSftsDRmV .taskTextOutside3{fill:black;}#mermaid-svg-1W0t4dwqSftsDRmV .active0,#mermaid-svg-1W0t4dwqSftsDRmV .active1,#mermaid-svg-1W0t4dwqSftsDRmV .active2,#mermaid-svg-1W0t4dwqSftsDRmV .active3{fill:#bfc7ff;stroke:#534fbc;}#mermaid-svg-1W0t4dwqSftsDRmV .activeText0,#mermaid-svg-1W0t4dwqSftsDRmV .activeText1,#mermaid-svg-1W0t4dwqSftsDRmV .activeText2,#mermaid-svg-1W0t4dwqSftsDRmV .activeText3{fill:black!important;}#mermaid-svg-1W0t4dwqSftsDRmV .done0,#mermaid-svg-1W0t4dwqSftsDRmV .done1,#mermaid-svg-1W0t4dwqSftsDRmV .done2,#mermaid-svg-1W0t4dwqSftsDRmV .done3{stroke:grey;fill:lightgrey;stroke-width:2;}#mermaid-svg-1W0t4dwqSftsDRmV .doneText0,#mermaid-svg-1W0t4dwqSftsDRmV .doneText1,#mermaid-svg-1W0t4dwqSftsDRmV .doneText2,#mermaid-svg-1W0t4dwqSftsDRmV .doneText3{fill:black!important;}#mermaid-svg-1W0t4dwqSftsDRmV .crit0,#mermaid-svg-1W0t4dwqSftsDRmV .crit1,#mermaid-svg-1W0t4dwqSftsDRmV .crit2,#mermaid-svg-1W0t4dwqSftsDRmV .crit3{stroke:#ff8888;fill:red;stroke-width:2;}#mermaid-svg-1W0t4dwqSftsDRmV .activeCrit0,#mermaid-svg-1W0t4dwqSftsDRmV .activeCrit1,#mermaid-svg-1W0t4dwqSftsDRmV .activeCrit2,#mermaid-svg-1W0t4dwqSftsDRmV .activeCrit3{stroke:#ff8888;fill:#bfc7ff;stroke-width:2;}#mermaid-svg-1W0t4dwqSftsDRmV .doneCrit0,#mermaid-svg-1W0t4dwqSftsDRmV .doneCrit1,#mermaid-svg-1W0t4dwqSftsDRmV .doneCrit2,#mermaid-svg-1W0t4dwqSftsDRmV .doneCrit3{stroke:#ff8888;fill:lightgrey;stroke-width:2;cursor:pointer;shape-rendering:crispEdges;}#mermaid-svg-1W0t4dwqSftsDRmV .milestone{transform:rotate(45deg) scale(0.8,0.8);}#mermaid-svg-1W0t4dwqSftsDRmV .milestoneText{font-style:italic;}#mermaid-svg-1W0t4dwqSftsDRmV .doneCritText0,#mermaid-svg-1W0t4dwqSftsDRmV .doneCritText1,#mermaid-svg-1W0t4dwqSftsDRmV .doneCritText2,#mermaid-svg-1W0t4dwqSftsDRmV .doneCritText3{fill:black!important;}#mermaid-svg-1W0t4dwqSftsDRmV .activeCritText0,#mermaid-svg-1W0t4dwqSftsDRmV .activeCritText1,#mermaid-svg-1W0t4dwqSftsDRmV .activeCritText2,#mermaid-svg-1W0t4dwqSftsDRmV .activeCritText3{fill:black!important;}#mermaid-svg-1W0t4dwqSftsDRmV .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:'trebuchet ms',verdana,arial,sans-serif;font-family:var(--mermaid-font-family);}#mermaid-svg-1W0t4dwqSftsDRmV :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 2014-01-07 2014-01-09 2014-01-11 2014-01-13 2014-01-15 2014-01-17 2014-01-19 2014-01-21 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid 关于 甘特图 语法参考 这儿, UML 图表 可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图 #mermaid-svg-v14qVbIKp0S9gGy5 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-v14qVbIKp0S9gGy5 .error-icon{fill:#552222;}#mermaid-svg-v14qVbIKp0S9gGy5 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-v14qVbIKp0S9gGy5 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-v14qVbIKp0S9gGy5 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-v14qVbIKp0S9gGy5 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-v14qVbIKp0S9gGy5 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-v14qVbIKp0S9gGy5 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-v14qVbIKp0S9gGy5 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-v14qVbIKp0S9gGy5 .marker.cross{stroke:#333333;}#mermaid-svg-v14qVbIKp0S9gGy5 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-v14qVbIKp0S9gGy5 .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-v14qVbIKp0S9gGy5 text.actortspan{fill:black;stroke:none;}#mermaid-svg-v14qVbIKp0S9gGy5 .actor-line{stroke:grey;}#mermaid-svg-v14qVbIKp0S9gGy5 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-v14qVbIKp0S9gGy5 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-v14qVbIKp0S9gGy5 #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-v14qVbIKp0S9gGy5 .sequenceNumber{fill:white;}#mermaid-svg-v14qVbIKp0S9gGy5 #sequencenumber{fill:#333;}#mermaid-svg-v14qVbIKp0S9gGy5 #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-v14qVbIKp0S9gGy5 .messageText{fill:#333;stroke:#333;}#mermaid-svg-v14qVbIKp0S9gGy5 .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-v14qVbIKp0S9gGy5 .labelText,#mermaid-svg-v14qVbIKp0S9gGy5 .labelTexttspan{fill:black;stroke:none;}#mermaid-svg-v14qVbIKp0S9gGy5 .loopText,#mermaid-svg-v14qVbIKp0S9gGy5 .loopTexttspan{fill:black;stroke:none;}#mermaid-svg-v14qVbIKp0S9gGy5 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-v14qVbIKp0S9gGy5 .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-v14qVbIKp0S9gGy5 .noteText,#mermaid-svg-v14qVbIKp0S9gGy5 .noteTexttspan{fill:black;stroke:none;}#mermaid-svg-v14qVbIKp0S9gGy5 .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-v14qVbIKp0S9gGy5 .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-v14qVbIKp0S9gGy5 .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-v14qVbIKp0S9gGy5 .actorPopupMenu{position:absolute;}#mermaid-svg-v14qVbIKp0S9gGy5 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-v14qVbIKp0S9gGy5 .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-v14qVbIKp0S9gGy5 .actor-man circle,#mermaid-svg-v14qVbIKp0S9gGy5 line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-v14qVbIKp0S9gGy5 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 张三 李四 王五 你好李四, 最近怎么样? 你最近怎么样王五 我很好谢谢! 我很好谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五 这将产生一个流程图。: #mermaid-svg-w0aLlXWPUng75NpW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-w0aLlXWPUng75NpW .error-icon{fill:#552222;}#mermaid-svg-w0aLlXWPUng75NpW .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-w0aLlXWPUng75NpW .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-w0aLlXWPUng75NpW .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-w0aLlXWPUng75NpW .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-w0aLlXWPUng75NpW .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-w0aLlXWPUng75NpW .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-w0aLlXWPUng75NpW .marker{fill:#333333;stroke:#333333;}#mermaid-svg-w0aLlXWPUng75NpW .marker.cross{stroke:#333333;}#mermaid-svg-w0aLlXWPUng75NpW svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-w0aLlXWPUng75NpW .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-w0aLlXWPUng75NpW .cluster-label text{fill:#333;}#mermaid-svg-w0aLlXWPUng75NpW .cluster-label span{color:#333;}#mermaid-svg-w0aLlXWPUng75NpW .label text,#mermaid-svg-w0aLlXWPUng75NpW span{fill:#333;color:#333;}#mermaid-svg-w0aLlXWPUng75NpW .node rect,#mermaid-svg-w0aLlXWPUng75NpW .node circle,#mermaid-svg-w0aLlXWPUng75NpW .node ellipse,#mermaid-svg-w0aLlXWPUng75NpW .node polygon,#mermaid-svg-w0aLlXWPUng75NpW .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-w0aLlXWPUng75NpW .node .label{text-align:center;}#mermaid-svg-w0aLlXWPUng75NpW .node.clickable{cursor:pointer;}#mermaid-svg-w0aLlXWPUng75NpW .arrowheadPath{fill:#333333;}#mermaid-svg-w0aLlXWPUng75NpW .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-w0aLlXWPUng75NpW .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-w0aLlXWPUng75NpW .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-w0aLlXWPUng75NpW .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-w0aLlXWPUng75NpW .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-w0aLlXWPUng75NpW .cluster text{fill:#333;}#mermaid-svg-w0aLlXWPUng75NpW .cluster span{color:#333;}#mermaid-svg-w0aLlXWPUng75NpW div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-w0aLlXWPUng75NpW :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 链接 长方形 圆 圆角长方形 菱形 关于 Mermaid 语法参考 这儿, FLowchart流程图 我们依旧会支持flowchart的流程图 Created with Raphaël 2.3.0 开始 我的操作 确认 结束 yes no 关于 Flowchart流程图 语法参考 这儿. 导出与导入 导出 如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 生成一个.md文件或者.html文件进行本地保存。 导入 如果你想加载一篇你写过的.md文件在上方工具栏可以选择导入功能进行对应扩展名的文件导入 继续你的创作。 mermaid语法说明 ↩︎ 注脚的解释 ↩︎
http://www.zqtcl.cn/news/357322/

相关文章:

  • 南京越城建设集团网站网站空间续费多少钱
  • 深圳nft网站开发公司如何制作微信公众号里的小程序
  • 做网站美工要学什么聊城网站建设电话
  • 南通个人网站建设快手秒刷自助网站
  • html5 做网站网站开发找工作
  • 聚成网站建设艺术公司网站定制中心
  • 阿里云上可以做网站吗十六局集团门户网
  • 门户网站建设询价函有哪些网站可以做设计挣钱
  • 如何建立自己网站奔奔网站建设
  • 自由做图网站做网站所用的工具
  • 广西南宁做网站专业网站建设案例
  • 视屏网站的审核是怎么做的群辉 搭建wordpress
  • 嘉兴网站快速排名优化衡阳网站建设制作
  • 建设公共资源交易中心网站成都APP,微网站开发
  • dede网站地图修改厦门百度seo
  • 可以做行程的网站网站详情怎么做的
  • 网站建设心得8000字营销型网站建设的注意事项
  • 织梦购物网站整站源码哈尔滨网站建设技术托管
  • 做推广的网站微信号企业免费网站制作
  • 做旅游网站的引言上海公司网站建设哪家好
  • 找项目去哪个网站网站建设一条龙全包
  • 网站 数据库 模板网站系统建设合作合同范本
  • 网站空间租赁费用企业网站建设需要多少钱知乎
  • 免费建网站哪个模板多浅谈学校网站建设
  • 精致的个人网站手机网站建设基本流程图
  • 优秀网站网页设计图片主机屋做网站视频
  • 安徽网站建设电话编程一个最简单游戏代码
  • 西宁圆井模板我自己做的网站在线平面设计图
  • 浦口区网站建设技术指导做软件需要网站吗
  • 丹东有做公司网站的吗搜索引擎 wordpress