商品网站建设设计思路dw怎么做网站

news/2025/9/23 21:22:32/文章来源:
商品网站建设设计思路,dw怎么做网站,设计网站公司长沙,做冻品的网站文章目录 一、redis1.1 redis概述1.2 redis安装 二、string2.1 基础命令2.2 存储结构2.3 应用 三、list3.1 基础命令3.2 应用 四、hash4.1 基础命令4.2 存储结构4.3 应用 五、set5.1 基础命令5.2 存储结构5.3 应用 六、zset6.1 基础命令6.2 存储结构6.3 应用 一、redis 1.1 re… 文章目录 一、redis1.1 redis概述1.2 redis安装 二、string2.1 基础命令2.2 存储结构2.3 应用 三、list3.1 基础命令3.2 应用 四、hash4.1 基础命令4.2 存储结构4.3 应用 五、set5.1 基础命令5.2 存储结构5.3 应用 六、zset6.1 基础命令6.2 存储结构6.3 应用 一、redis 1.1 redis概述 redis Remote Dictionary Service – 远程字典服务它是一款开源、高性能的键值存储数据库。它支持各种数据结构包括**字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(ZSet)**等并提供了丰富的操作命令可以对这些数据结构进行灵活的读写操作。 redis以内存为主要存储介质这使得它具有非常快速的读写性能。同时Redis也支持将数据持久化到磁盘以便在重启或崩溃恢复后保留数据。它采用了单线程的事件循环模型通过异步IO和多路复用技术实现了高并发处理能力。 总结来说redis是内存数据库、Key-Value数据库、数据结构数据库 1远程字典服务节点通过tcp与redis建立连接交互。并且是请求回应模型即节点发送请求命令到redis -- redis回复请求结果 2内存数据库指的是redis以内存为主要存储介质数据都在内存中不可能出现数据不在内存中而磁盘有这个数据。 2Key-Value数据库redis是以KV方式存储的其中key是string类型而value多种数据结构。操作方式是redis通过key操作或者查询value。 详细的命令可以查阅redis命令中心 1.2 redis安装 1安装redis-server sudo apt-get install redis-server2查看redis服务的状态 ps -ef|grep redis3查看配置文件所在位置 whereis redis # 结果是redis: /etc/redis4修改配置文件 先备份 # 以管理员身份登录 sudo -icd /etc/redis/# 备份 cp redis.conf redis.conf.copy修改配置文件 sudo vim /etc/redis/redis.conf修改内容为 # 守护进程修改为yes后即可后台运行 daemonize yes # 监听的地址默认是127.0.0.1会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问 bind 0.0.0.0# 其他修改可选# 密码设置后访问 redis 必须输入密码 requirepass 123456# 监听端口号默认为 6379 port 63795重启redis sudo service redis restart6客户端连接 redis-cli [options] [commonds] -h 指定要连接的redis节点的IP地址默认是127.0.0.1 -p 指定要连接的redis节点的端口默认是6379 -a 指定redis的访问密码 比如 redis-cli -h 127.0.0.1 -a 123456二、string string字符数组该字符串是动态字符串 raw字符串长度小于1M时加倍扩容超过 1M 每次只多扩 1M字符串最大长度为512M 注意redis 字符串是二进制安全字符串可以存储图片二进制协议等二进制数据 2.1 基础命令 # 设置 key 的 value 值 SET key val # 获取 key 的 value GET key # 一次为多个字符串键设置值 MSET key value # 一次获取多个字符串键的值 MGET key [key...] # 将key设置值为value如果key不存在这种情况下等同SET命令。 当key存在时什么也不做。SETNX是”SET if Not eXists”的简写。 SETNX key value MSETNC key value [key value ...]# 返回key对应的字符串value的子串这个子串是由start和end位移决定的两者都在string内 GETRANGE key start end # 覆盖key对应的string的一部分从指定的offset处开始覆盖value的长度。 SETRANGE key start end # 追加新内容到值的末尾 APPEND key suffix# 执行原子1的操作 INCR key # 执行原子加一个整数的操作 INCRBY key increment # 执行原子加一个浮点数的操作 INCRBYFLOAT key increment # 执行原子-1的操作 DECR key # 执行原子减一个整数的操作 DECR key decrement# 删除字符串键值对 DEL key# 设置或者清空key的value(字符串)在offset处的bit值。 SETBIT key offset value # 返回key对应的string在offset处的bit值 GETBIT key offset # 统计字符串设置为1的bit数. BITCOUNT key# 清除所有键值对 FLUSHALL2.2 存储结构 字符串长度小于等于 20 且能转成整数则使用 int 存储字符串长度小于等于 44则使用 embstr 存储字符串长度大于44则使用 raw 存储 embstr 是一种字符串编码方式用于表示较短且不包含二进制数据的字符串。它是 Redis 用于优化内存使用的一种编码方式。使用 embstr 编码可以减少字符串对象在内存中的空间占用。对于符合条件的短字符串Redis 会直接将字符串值存储在字符串对象的结构体中而不是额外分配内存来保存字符串数据。 raw是一种字符串编码方式用于表示较长或包含二进制数据的字符串。使用 raw 编码方式存储字符串时Redis 会分配额外的内存来保存字符串数据。这意味着 raw 编码的字符串对象在内存中占用更多的空间但同时具有更大的灵活性可以处理更长的字符串和包含二进制数据的字符串。 2.3 应用 1对象存储。存储的数据不能改变如果是需要改变的数据使用hash来存储 127.0.0.1:6379 set role:1001 name:jack sex:man age:30 OK 127.0.0.1:6379 get role:1001 name:jack sex:man age:302累加器 127.0.0.1:6379 set read 100 OK 127.0.0.1:6379 incr read (integer) 101 127.0.0.1:6379 incrby read 50 (integer) 1513分布式锁redis 实现的是非公平锁 # 加锁不存在才能设置EX 设置过期时间为 30 秒 set lock uuid nx ex 30 # 解锁 if (get(lock) uuid)del(lock);4位运算。比如实现签到功能。 127.0.0.1:6379 setbit sign:1001:202307 1 1 # 2023年7月1日 签到 (integer) 0 127.0.0.1:6379 setbit sign:1001:202307 2 1 # 2023年7月2日 签到 (integer) 0 127.0.0.1:6379 setbit sign:1001:202307 3 0 # 2023年7月1日 未来签到 (integer) 0 127.0.0.1:6379 bitcount sign:1001:202307 # 获取该用户2023年7月签到次数 (integer) 2 127.0.0.1:6379 getbit sign:1001:202307 2 # 获取该用户2023年7月2日签到情况 (integer) 1三、list 双向链表实现列表首尾操作删除和增加时间复杂度O(1)查找中间元素时间复杂度为O(n) 列表中数据是否压缩的依据 1元素长度小于 48不压缩 2元素压缩前后长度差不超过 8不压缩 3.1 基础命令 # 从队列的左侧入队一个或多个元素 LPUSH key value [value ...] # 从队列的左侧弹出一个元素 LPOP key # 从队列的右侧入队一个或多个元素 RPUSH key value [value ...] # 从队列的右侧弹出一个元素 RPOP key # 获取队列的长度 LLEN key # 获取队列指定索引上的元素 LINDEX key index # 返回从队列的 start 和 end 之间的元素 LRANGE key start end # 设置队列里面一个元素的值 LSET key index value# 把 value 插入存于 key 的列表中在基准值 pivot 的前面或后面。 LINSERT key BEFORE|AFTER pivot value # 修剪一个已存在的 list这样 list 就会只包含指定范围的指定元素。 LTRIM key start stop # 从存于 key 的列表里移除前 count 次出现的值为 value 的元素。 LREM key count value# 它是 RPOP 的阻塞版本因为这个命令会在给定list无法弹出任何元素的时候阻塞连接 BRPOP list timeout # 超时时间 延时队列 BLPOP list timeout # 超时时间 延时队列3.2 应用 1实现数据结构 栈先进后出 FILO LPUSH LPOP # 或者 RPUSH RPOP队列先进先出 FIFO LPUSH RPOP # 或者 RPUSH LPOP阻塞队列blocking queue LPUSH BRPOP # 或者 RPUSH BLPOP2获取固定窗口记录 在某些业务场景下需要获取固定数量的记录比如游戏里显示最近50条战绩这些记录需要按照插入的先后顺序返回。 127.0.0.1:6379 lpush scores game1 game2 game3 game4 game5 game6 game7 game8 (integer) 8 127.0.0.1:6379 ltrim scores 0 5 OK 127.0.0.1:6379 lrange scores 0 -1 1) game8 2) game7 3) game6 4) game5 5) game4 6) game3实际项目中需要保证命令的原子性所以一般用 lua 脚本 或者使用 pipeline 命令。 # redis lua脚本# 将传入的记录值保存在 record 变量中 local record KEYS[1] # 使用 LPUSH 命令将 record 的值插入到名为 scores 的列表的左侧即将记录值添加到列表的开头。 redis.call(LPUSH, scores, record) # 使用 LTRIM 命令对 scores 列表进行修剪trim指定保留列表的起始索引为 0结束索引为 4即保留列表的前 5 个元素。 redis.call(LTRIM, scores, 0, 4)四、hash 散列表查询修改 O(1) 4.1 基础命令 # 获取 key 对应 hash 中的 field 对应的值 HGET key field # 设置 key 对应 hash 中的 field 对应的值 HSET key field value # 设置多个hash键值对 HMSET key field value [field value ...] # 获取多个field的值 HMGET key field [field ...] # 给 key 对应 hash 中的 field 对应的值加一个整数值 HINCRBY key field increment # 给 key 对应 hash 中的 field 对应的值加一个float类型的值 HINCRBYFLOAT key field increment # 获取 key 对应的 hash 有多少个键值对 HLEN key # 返回hash里面field是否存在 HEXISTS key field # 删除 key 对应的 hash 的键值对该键为field HDEL key field4.2 存储结构 节点数量大于 512hash-max-ziplist-entries 或所有字符串长度大于 64hash-max-ziplist-value则使用 dict 实现 节点数量小于等于 512 且有一个字符串长度小于 64则使用ziplist 实现 4.3 应用 1存储对象 hash 可以存储需要频繁修改的对象。若为 string 类型首先把获得的字符串 json 反序列化修改后再用 json 序列化操作繁琐。 127.0.0.1:6379 hmset role:1001 name jack sex man age 30 OK 127.0.0.1:6379 hmget role:1001 age 1) 30 127.0.0.1:6379 hset role:1001 age 40 (integer) 0 127.0.0.1:6379 hmget role:1001 age 1) 40而如果是string一般使用的是json格式 set hash:10001 {[name]:jack,[sex]:man,[age]:30} # 假设现在修改 jack的年龄为40岁 # string: get role:10001 # 将得到的字符串调用json解密取出字段修改 age 值 # 再调用json加密 set role:10001 {[name]:jack,[sex]:man,[age]:40}2购物车hash list hash管理购物车中商品的具体信息 list管理购物车中的商品按照添加顺序来显示的 # 将用户id作为 key # 商品id作为 field商品数量作为 value # 商品结构cost作为 field具体金额作为 value # 注意这些物品是按照我们添加顺序来显示的# 添加商品hset MyCart:10001 40001 1 cost 6000 # 用户id:10001 商品id40001 数量1 价格cost6000lpush MyItem:10001 40001 # 增加数量hincrby MyCart:10001 40001 1hincrby MyCart:10001 40001 -1 // 减少数量1 # 显示所有物品数量hlen MyCart:10001 # 删除商品hdel MyCart:10001 40001lrem MyItem:10001 1 40001 # 获取所有物品lrange MyItem:10001# 40001 40002 40003hget MyCart:10001 40001hget MyCart:10001 40002hget MyCart:10001 40003五、set 集合用来存储唯一性字段不要求有序。 5.1 基础命令 # 添加一个或多个指定的member元素到集合的 key中 SADD key member [member ...] # 计算集合元素个数 SCARD key # 列出所有的数据 SMEMBERS key # 返回成员 member 是否是存储的集合 key的成员 SISMEMBER key member # 随机返回key集合中的一个或者多个元素不删除这些元素 SRANDMEMBER key [count] # 从存储在key的集合中移除并返回一个或多个随机元素 SPOP key [count] # 返回一个集合与给定集合的差集的元素 SDIFF key [key ...] # 返回指定所有的集合的成员的交集 SINTER key [key ...] # 返回给定的多个集合的并集中的所有成员 SUNION key [key ...]5.2 存储结构 元素都为整数且节点数量小于等于 512set-max-intset-entries则使用整数数组存储 元素当中有一个不是整数或者节点数量大于 512则使用字典存储 5.3 应用 # 添加抽奖用户 127.0.0.1:6379 sadd Award:1 101 102 103 104 105 106 107 108 109 110 (integer) 10 # 查看抽奖用户 127.0.0.1:6379 smembers Award:11) 1012) 1023) 1034) 1045) 1056) 1067) 1078) 1089) 109 10) 110 # 抽取多名获奖用户 127.0.0.1:6379 srandmember Award:1 2 1) 109 2) 105 # 抽取一等奖1名二等奖2名三等奖3名 127.0.0.1:6379 spop Award:1 1 1) 109 127.0.0.1:6379 spop Award:1 2 1) 102 2) 106 127.0.0.1:6379 spop Award:1 3 1) 107 2) 104 3) 1052共同关注推荐好友 127.0.0.1:6379 sadd user:A jack mark rose taylor (integer) 4 127.0.0.1:6379 sadd user:B tom jack taylor alex (integer) 4 # 获取共同关注 127.0.0.1:6379 sinter user:A user:B 1) jack 2) taylor # 向 B 推荐 A 的好友 127.0.0.1:6379 sdiff user:A user:B 1) rose 2) mark # 向 A 推荐 B 的好友 127.0.0.1:6379 sdiff user:B user:A 1) tom 2) alex六、zset 有序集合它是有序且唯一。zset是实时有序的zset内部是使用调表实现的。可以用来实现排行榜 6.1 基础命令 # 添加到键为key有序集合sorted set里面 # XX: 仅仅更新存在的成员不添加新成员。 # NX: 不更新存在的成员。只添加新成员。 # CH: 修改返回值为发生变化的成员总数 # INCR: 当ZADD指定这个选项时成员的操作就等同ZINCRBY命令 ZADD key [NX|XX] [CH] [INCR] score member [score member ...] # 从键为key有序集合中删除 member 的键值对 ZREM key member [member ...] # 返回有序集key中成员member的score值 ZSCORE key member # 为有序集key的成员member的score值加上增量increment ZINCRBY key increment member # 返回key的有序集元素个数 ZCARD key # 返回有序集key中成员member的排名。按score值从小到大排列 ZRANK key member # 返回有序集key中成员member的排名。按score值从大到小排列 ZREVRANK key member # 返回存储在有序集合key中的指定范围的元素(升序) ZRANGE key start stop [WITHSCORES] # 返回存储在有序集合key中的指定范围的元素(逆序) ZREVRANGE key start stop [WITHSCORES] # 返回有序集key中score值在min和max之间(默认包括score值等于min或max)的成员。 ZCOUNT key min max # 移除有序集key中指定排名(rank)区间内的所有成员。 ZREMRANGEBYRANK key start stop # 移除有序集key中所有score值介于min和max之间(包括等于min或max)的成员。 ZREMRANGEBYSCORE key min max6.2 存储结构 节点数量大于 128 或者有一个字符串长度大于 64则使用跳表skiplist 节点数量小于等于 128zset-max-ziplist-entries且所有字符串长度小于等于 64zset-max-ziplist-value则使用ziplist 存储 6.3 应用 1热搜排行榜 # 点击量 热搜id 127.0.0.1:6379 zadd hot:20230719 0 1001 0 1002 0 1003 0 1004 0 1005 (integer) 5 # 点击热搜 127.0.0.1:6379 zincrby hot:20230719 1 1001 1 127.0.0.1:6379 zincrby hot:20230719 1 1002 1 127.0.0.1:6379 zincrby hot:20230719 1 1003 1 127.0.0.1:6379 zincrby hot:20230719 1 1004 1 127.0.0.1:6379 zincrby hot:20230719 1 1005 1 # 获取热搜排行榜 127.0.0.1:6379 zrevrange hot:20230719 0 -1 withscores1) 10052) 13) 10044) 15) 10036) 17) 10028) 19) 1001 10) 12延时队列 将消息序列化成一个字符串作为 zset 的 member这个消息的到期处理时间作为 score然后用多个线程轮询 zset 获取到期的任务进行处理。 // 添加延时消息 def delay(msg):msg.id str(uuid.uuid4()) // 保证 member 唯一value json.dumps(msg)retry_ts time.time() 5 // 当前时间 5s后重试redis.zadd(delay-queue, retry_ts, value)def loop():while True:// 获取到期的消息values redis.zrangebyscore(delay-queue, 0, time.time(), start0, num1)if not values:time.sleep(1)continuevalue values[0]// 从延时队列中移除过期消息并执行success redis.zrem(delay-queue, value)if success:msg json.loads(value)handle_msg(msg) /* 缺点loop 是多线程竞争每个线程都从zrangebyscore获取到数据只有一个能 zrem 成功。 优化为了避免多余的操作可以使用lua脚本原子执行这两个命令。 */3分布式定时器 生产者将定时任务 hash 到不同的 redis 实体中为每一个redis 实体分配一个 dispatcher 进程用来定时获取 redis 中超时事件并发布到不同的消费者中 4时间窗口限流 在 Redis 中可以使用 EXPIRE 命令为指定的键设置过期时间。一旦过期时间到达Redis 将自动删除该键。 EXPIRE key seconds假设我们有一个键名为 “mykey” 的键现在我们想要给它设置一个过期时间为 60 秒 SET mykey Hello, world! OKEXPIRE mykey 60 (integer) 1系统限定用户的某个行为在指定的时间范围内动态只能发生 N 次。通过时间窗口限流实现 // 指定用户 user_id 的某个行为 action 在特定时间内period 允许发生 max_count 次 // 维护一次时间窗口将窗口外的记录全部清理掉只保留窗口内的记录 local function is_action_allowed(red, userid,action, eriod, max_count) local key tab_concat({hist, userid,action}, :)local now zv.time()red:init_pipeline()// 记录行为red:zadd(key, now, now)// 移除时间窗口之前的行为记录剩下的都是时间窗口内的记录red:zremrangebyscore(key, 0, now - period*100)// 获取时间窗口内的行为数量red:zcard(key)// 设置过期时间避免冷用户持续占用内存 时间窗口的长度1秒red:expire(key, period 1)// 提交local res red:commit_pipeline()// 不超过次数返回 ture超过返回 falsereturn res[3] max_count end 维护一次时间窗口将窗口外的记录全部清理掉只保留窗口内的记录 缺点记录了所有时间窗口内的数据如果这个量很大不适合做这样的限流漏斗限流。 注意如果用 key expire 操作也能实现但是实现的是熔断限流这里是时间窗口限流的功能 漏斗限流算法基于一个类似漏斗的数据结构来控制请求的流量。 熔断限流是一种机制用于在系统达到一定阈值时快速停止对其的请求。

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

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

相关文章

下载网站源码行业网站设计公司

文章来源:http://www.bjfhrd.com 体育木地板上有许多暗门,以制造特殊效果,如火焰、烟雾,使房屋、树木、山或人物在一瞬间出现或销售。这种特殊的要求,对于专业体育木地板德施工就有了一定的要求。 专业体育木地板施工&…

湖南教育平台网站建设查公司注册信息怎么查

转载自 关于SimpleDateFormat时间格式化线程安全问题昨天推送的文章《关于创建和销毁对象》一文中,2.1重复利用对象这一小节所举的SimpleDateFormat格式化时间的例子是不合适的,因为多线程场景下,SimpleDateFormat存在线程安全问题。在此&am…

网站的建设与维护需要资质吗网站设置子目录

HTTP HTTP版本HTTP2和HTTP3区别 HTTP版本 HTTP(超文本传输协议)的发展史可以分为以下几个版本: 1. HTTP/0.9:最初的版本只能传输HTML文本,并且没有header和body,仅支持GET请求。 2. HTTP/1.0&#xff1a…

如何对网站的图片做cdn如何做企业文化培训

1、什么是流 我们可以先想象水流是怎样的?溪水不断流动,最终融入大海;我们今天的学习IO其实如同水流一样,当我们读取文件信息或者写入信息时,如同水流一样,不断读取或者写入,直到业务流程结束。…

个人导航网站怎么备案网站上线准备

本文来自腾讯蓝鲸智云社区用户: CanWay 平台化工程涉及双重核心意义。一方面,是类似利用IDE等工具提高工程师效率的平台化工程,如GitOps或命令行调度般便捷。然而,本文重点探讨的是基于价值流的平台化工程,尤其针对传统金融行业&a…

部队网站模板html网页框架代码实例

分类算法之逻辑回归逻辑回归(Logistic Regression),简称LR。它的特点是能够是我们的特征输入集合转化为0和1这两类的概率。一般来说,回归不用在分类问题上,因为回归是连续型模型,而且受噪声影响比较大。如果…

好看的单页面网站中小企业网站功能

#需要资源或有问题的,可私博主!!! #需要资源或有问题的,可私博主!!! #需要资源或有问题的,可私博主!!! 某企业根据自身业务需求&…

内网环境怎么安装软件(用 yum / apt 下载离线包并搬入内网)

目录内网环境怎么安装软件(用 yum / apt 下载离线包并搬入内网) 内网环境怎么安装软件(用 yum / apt 下载离线包并搬入内网) 很多同学觉得在内网装软件很简单:在有网络的机器上把包下载好,再拷贝到内网安装。思路…

tanh函数

tanh函数(双曲正切函数)是神经网络中一种常用的激活函数,它的数学表达式为: $$\tanh(x) = \frac{e^x - e{-x}}{ex + e^{-x}}$$ 它的输出范围是 $(-1, 1)$。 tanh函数的特点非线性:和 Sigmoid 函数一样,tanh 函数…

P13617 [ICPC 2024 APC] Bit Counting Sequence

P13617 [ICPC 2024 APC] Bit Counting Sequence对于一个非负整数 \(x\),令 \(p(x)\) 为 \(x\) 的二进制表示中 1 的个数。例如,\(p(26)=3\),因为 \(26=(11010)_2\)。 给定长为 \(n\) 的整数序列 \((a_1, a_2, ..., …

成都捕鱼网站建设做设计需要知道的几个网站

【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码 1 题目 题目 D 题 圈养湖羊的空间利用率 规模化的圈养养殖场通常根据牲畜的性别和生长阶段分群饲养,适应不同种类、不同阶段的牲畜对空间的不同要求,以保障牲畜安全和健康&a…

网页模板素材网站最新网球赛事新闻

烛秋 http://www.cnblogs.com/cswuyg/archive/2011/09/30/dll.html 动态链接库的使用有两种方式,一种是显式调用。一种是隐式调用。 (1) 显式调用:使用LoadLibrary载入动态链接库、使用GetProcAddress获取某函数地址。 &am…

如何修改网站底部重庆点优定制网站建设

文章目录 语法使用举例 $millisecond聚合运算符返回日期中毫秒部分的数字值为0到999之间 语法 { $millisecond: <dateExpression> }参数说明&#xff1a; <dateExpression>为可解析为Date、Timestamp或ObjectID或者参数也可以是一个文档&#xff1a; { date: &l…

淘宝网站模板是什么做的html中文网

dockerfiletodo item基础命令编写dockefiel基于centos镜像制作tomcatjdk的镜像todo item 是用来构建docker镜像的脚本&#xff1b;命令参数脚本。构建步骤:1、编写一个dockerfile文件2、 docker build 构建为一个镜像3、docker run 运行镜像4、docker push 发布镜像(dockerhub…

网站建设进度总结网站设为主页功能怎么做

前端技术知识&#xff08;含八股&#xff09;总结 - 持续更新中 参考文献1.HTML和CSS1.1 语义化标签1.2 CSS 选择器及优先级 / position 定位 / box-sizing 属性 / transition / 继承属性&#xff08;如字体文字类的属性大部分有继承&#xff09;/ 行内元素和块级元素 / html的…

装饰公司为什么做网站怎么区别网站开发语言

可以按这样的方式来存放 长度A 长度A 用于调整Short JMP 用于存放一些信息 |调整后的原HOOK代码 |原始代码(HOOK) |临时LONG JMP区| 信息区| 1). 调整…

上海网站制作怎么选怎么做学校官方网站

雪花算法学习笔记 来源 https://pdai.tech/md/algorithm/alg-domain-id-snowflake.html概述 雪花算法是推特开源的分布式ID生成算法&#xff0c;以划分命名空间的方式将64位分割成多个部分&#xff0c;每一个部分代表不同的含义&#xff0c;这种就是将64位划分成不同的段&…

建设租房子的网站住房和城乡建设部资质延期

声明 该图并非原创&#xff0c;原文出处不可考&#xff0c;因此在这里附加说明。 示意图

网站栏目规划叫什么软件论坛网站有哪些

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 数据库管理系统&#xff08;英语&#xff1a;database management system&#xff0c;缩写&#xff1a;DBMS&#xff09; 是一种针对对…

房地产公司的网站建设方案佛山做公司网站

目录 前言趣闻轶事65则参考文献 前言 有人的地方就有江湖&#xff0c;有江湖的地方就有故事。数学本身就是一个江湖&#xff0c;这个江湖也充满着血雨腥风和侠骨柔情&#xff0c;至今流传着各种各样的传说&#xff0c;其中不乏”马踏江湖潇潇事“&#xff0c;也有"何当共…