当前位置: 首页 > news >正文 南头专业外贸网站建设公司如何建设网站制作平台 news 2025/10/26 6:49:59 南头专业外贸网站建设公司,如何建设网站制作平台,北京营销型网站开发,wordpress开发商城文章目录 一、淘汰策略1.1 背景1.2 淘汰策略 二、持久化2.1 AOF日志2.1.1 AOF配置2.1.2 AOF策略2.1.3 AOF缺点2.1.4 AOF Rewrite2.1.5 AOF Rewrite配置2.1.6 AOF Rewrite缺点2.1.7 fork进程时的写时复制2.1.8 大key对持久化的影响 2.2 RDB快照2.2.1 RDB配置2.2.2 RDB缺点 2.3 混… 文章目录 一、淘汰策略1.1 背景1.2 淘汰策略 二、持久化2.1 AOF日志2.1.1 AOF配置2.1.2 AOF策略2.1.3 AOF缺点2.1.4 AOF Rewrite2.1.5 AOF Rewrite配置2.1.6 AOF Rewrite缺点2.1.7 fork进程时的写时复制2.1.8 大key对持久化的影响 2.2 RDB快照2.2.1 RDB配置2.2.2 RDB缺点 2.3 混合持久化2.4 优缺点总结2.5 持久化的数据安全 一、淘汰策略 1.1 背景 Redis 之所以有淘汰策略是因为 Redis 是基于内存的高性能键值存储系统它将数据全部加载到内存中进行读写操作。但是内存资源是有限的当 Redis 使用的内存接近或超过系统可用内存时就需要通过一些策略来释放内存空间。 1键过期通过expire / pexpire 设置key的生存时间。当key的生存周期达到时将对应的key-value删除。 # 设置 key 的过期时间 expire key seconds pexpire key milliseconds # 查看 key 的过期时间 ttl key pttl key2键的空闲时间空转时长redis每次操作value时会记录操作的时间戳和统计对key-value的操作次数。value 的类型有多种底层由 redisObject 实现这种通用的数据结构可以存储不同类型的 value。 typedef struct redisObject {unsigned type:4; // 对象类型string, hash, list, setunsigned encoding:4; // 编码方式unsigned lru:LRU_BITS; // lru24位最近一次访问时间单位秒// lfu: 高16位最近一次访问时间低8位逻辑访问次数int refcount; // 引用计数计数为 0对象无人引用可以回收void *ptr; // 数据指针指向对象内容 } robj;lru字段用于记录操作value的时间也会统计对key-value操作了多少次。可以使用object idletime key获取指定键的空闲时间。空闲时间指的是自上次对该键进行读取或写入操作以来所经过的时间。 # 对象空转时长 object idletime key3配置 redis.conf有两个参数配置淘汰策略maxmemory和maxmemory-policy。 maxmemory限定redis可以使用的最大内存单位是字节 一般设置为当前系统可用内存的一半 maxmemory-policy用于制定淘汰策略。 # redis.conf maxmemory bytes maxmemory-policy noeviction1.2 淘汰策略 1.2.1 针对过期key volatile-lru从设置了过期时间的键中选择最近最少使用Least Recently Used最长时间没有使用的键进行删除。这种模式下 lru整个字段都用于记录时间。volatile-lfu从设置了过期时间的键中选择最少使用次数的键进行删除。这种模式下 记录操作的时间和统计对key-value操作次数8位统计次数16位记录时间。volatile-ttl从设置了过期时间的键中选择剩余时间最短最近就要过期的键进行删除。这种模式下记录操作的时间和统计对key-value操作次数8位统计次数16位记录时间。volatile-random从设置了过期时间的键中随机选择一个进行删除。ttl/pttl指令可以查询key还有多长时间到期。 1.2.2 针对所有key allkeys-lru从所有的键中选择最近最少使用的键进行删除。无论键是否设置了过期时间。 allkeys-lfu从所有的键中选择最少使用次数的键进行删除。无论键是否设置了过期时间。 allkeys-random从所有的键中随机选择一个进行删除。无论键是否设置了过期时间。 1.2.3 禁止淘汰 noeviction默认是禁止淘汰如果数据达到了最大内存限制在向redis中写入数据时会报错。 二、持久化 Redis 的数据全部在内存中如果突然宕机数据就会全部丢失。因此Redis 提供持久化机制将内存中的数据以文件的形式存储到硬盘上 Redis 重启时加载持久化文件来恢复原来的数据。以此来保证Redis 的数据不会因为故障而丢失。 redis持久化的方式有 AOFAppend-Only File日志记录了 Redis 服务器收到的所有写操作命令每执行一条写操作命令就以文本格式追加到一个日志文件中通过回放这些写命令可以还原数据。RDBRedis Database快照以二进制形式将 Redis 数据库的快照某一时刻的内存数据保存在硬盘上实现了数据的持久化存储。混合持久化AOF RDB 2.1 AOF日志 AOFAppend-Only File是 Redis 数据库中的一种持久化方式用于将写操作追加到文件中。 Redis 每执行一条写操作命令将命令以追加的方式写入 aof日志文件。aof文件存储的是Redis 协议的命令文本格式例如记录命令 set key value *3\r\n$3\r\nset\r\n$3\r\nkey\r\n$5\r\nvalueRedis 重启时通过重放replayAOF日志中指令序列来恢复 Redis 当前实例 的内存数据结构的状态 2.1.1 AOF配置 通过修改 Redis 配置文件 redis.conf 进行设置并在重启 Redis 服务后生效。 AOFAppend-Only File持久化配置 appendonly若配置为 yes启用 AOF 持久化。appendfilename设置 AOF 文件的名称。appendfsync设置刷新 AOF 文件到磁盘的策略。可选择的值有 always每次修改都刷新、everysec每秒刷新一次和 no由操作系统决定刷新时机。no-appendfsync-on-rewrite若配置为 yes在执行 AOF 重写时禁止执行 AOF 文件刷新操作。auto-aof-rewrite-percentage 和 auto-aof-rewrite-min-size配置 AOF 自动重写的触发条件其中 auto-aof-rewrite-percentage 表示 AOF 文件大小相对于上次重写后的大小增长的百分比而 auto-aof-rewrite-min-size 表示 AOF 文件最小大小。 # 开启 aof appendonly yes # 关闭 aof复写 auto-aof-rewrite-percentage 0 # 关闭 混合持久化 aof-use-rdb-preamble no # 关闭 rdb save 2.1.2 AOF策略 fsync 是一个与文件系统相关的系统调用它用于将文件系统缓存区中的数据立即写入物理磁盘主动刷盘。 Redis 写入 AOF 日志的过程wirte 从用户缓冲写到内核缓冲fysnc 从内核缓冲写到磁盘。 AOF 有三种策略always、every_sec、no。这三种策略主要差异是fsync()的调用时机 appendfsync always在每次写操作完成后都会立即将写命令追加到 AOF 文件并调用系统的fsync函数将数据同步到磁盘。这是最安全的方式但也会带来较大的性能开销。appendfsync everysec在每秒钟的间隔内将写命令追加到 AOF 文件然后调用系统的fsync函数将数据同步到磁盘。这种方式提供了较好的性能和较高的数据安全性之间的折中方案。在bio_aof_fsync线程中执行。appendfsync no不自己调用fsync()由系统决定什么时候调用fsync()将数据刷到磁盘文件中。 2.1.3 AOF缺点 AOF会把所有的写操作命令都追加到文件中包括一些冗余过期的数据比如 127.0.0.1:6379 set jack 100 OK 127.0.0.1:6379 set jack 200 OK 127.0.0.1:6379 set jack 300 OKAOF会将三个命令都保存到文件中恢复数据的时候也是执行了这三个命令。但实际只需要最后一次的命令即可。 因此随着时间越长AOF 日志会越来越长如果 redis 重启重放整个 AOF 日志会非常耗时导致 redis 长时间无法对外提供服务。 2.1.4 AOF Rewrite AOF Rewrite 是 Redis 中一种用于优化和压缩 Append-Only 文件AOF的机制。 在 Redis 的 AOF 持久化模式中所有写操作都会以追加方式记录到 AOF 文件中。随着时间的推移AOF 文件会不断增长可能变得非常大占用大量存储空间并且读取和恢复时也会变得较慢。为了解决这个问题Redis 提供了 AOF Rewrite 机制用于重写并优化 AOF 文件。 AOF Rewrite 的过程如下 启动 AOF Rewrite当启动 AOF Rewrite 时Redis 将fork一个子进程来执行 AOF Rewrite 操作同时继续接受客户端的新命令。 创建新的 AOF 文件子进程首先会创建一个新的空白 AOF 文件用于存储重写后的命令序列。 遍历现有 AOF 文件子进程会读取并解析现有的 AOF 文件将其中的命令逐个读取并转化为对应的数据结构。 合并相同命令在重写过程中子进程会合并相同的命令以减少生成的新命令数量。这样可以减小新 AOF 文件的大小并提高读取性能。 写入新的 AOF 文件合并后的命令将按顺序写入新的 AOF 文件中。在写入期间子进程会继续接收并处理来自客户端的新命令。 更新主进程状态当子进程完成写入新 AOF 文件后它将向主进程发送信号主进程接收到信号后将完成 AOF Rewrite 的最后步骤。 切换到新的 AOF 文件主进程将关闭当前的 AOF 文件并将新的 AOF 文件设置为当前的 AOF 文件。这样之后的写操作将会追加到新的 AOF 文件中。 完成 AOF Rewrite一旦切换完成AOF Rewrite 过程就完成了。新的 AOF 文件将包含原始 AOF 文件中的所有数据但经过了优化和压缩。 需要注意的是在 AOF Rewrite 过程中Redis 仍然会继续处理客户端的命令请求不会停止服务。重写期间Redis增加一个AOF重写缓冲区主进程将期间执行后的写操作命令记录到AOF重写缓冲区。当子进程完成AOF重写后会将AOF重写期间的AOF增量AOF重写缓冲区的数据追加到新的 AOF 文件中。并将新的 AOF 文件设置为当前的 AOF 文件。 2.1.5 AOF Rewrite配置 修改 redis.conf 配置开启 AOF 重写。 # 开启 aof appendonly yes# 开启 aof复写 # 1. redis 会记录上次aof复写时的size如果之后累计超过了 原来的size则会发生aof复写 auto-aof-rewrite-percentage 100 # 2. 为了避免策略1中小数据量时产生多次发生aof复写策略2 在满足策略1的前提下需要超过 64mb 才会发生aof复写 auto-aof-rewrite-min-size 64mb# 关闭 混合持久化 aof-use-rdb-preamble no # 关闭 rdb save 2.1.6 AOF Rewrite缺点 AOF Rewrite 在 AOF 基础上实现了瘦身但是 AOF 复写的数据量仍然很大加载会非常慢。因为数据恢复还是通过重放replay方式即重新执行命令的方式需要消耗CPU需要走命令处理流程。 2.1.7 fork进程时的写时复制 fork 是一个系统调用在操作系统中创建一个子进程。其中的写时复制Copy-on-WriteCOW是一种优化技术用于减少 fork 操作时的内存消耗和复制数据的开销。 写时复制的过程如下 父子进程共享相同的物理内存在执行 fork 时父进程的内存空间会被完整地复制给子进程。但是实际上父子进程会共享相同的物理内存页并且这些页被标记为“只读”。 写操作触发缺页中断当父进程或子进程尝试对共享的内存页进行写操作时操作系统会检测到这个写操作因为这些页是只读的。从而触发缺页中断 复制需要修改的内存页当发生写操作并产生缺页中断时操作系统会为触发缺页错误的父进程分配一块新的物理内存页并将原始只读页中需要修改的部分复制到新的内存页中。 更新页表在完成内存页的复制后操作系统会更新父进程和子进程的页表将对应的虚拟内存页映射到新的物理内存页上。子进程的页表指向原来的物理内存父进程的页表指向新的物理内存。 继续执行一旦复制和更新操作完成父子进程就可以继续各自独立地执行并且它们在内存中的数据是彼此隔离的。 写时复制的好处是避免了昂贵的内存复制操作。在 fork 之后父子进程只有在需要进行写操作时才会发生实际的内存复制避免物理内存的复制时间过长导致父进程长时间阻塞。 当然这也是AOF Rewrite的时候为了避免主进程写时复制造成父子进程内存数据不一致使得重写后 AOF 日志的数据与 Redis 中的数据不一致Redis 增加了一个 AOF 重写缓冲区。 2.1.8 大key对持久化的影响 大 keyKey 对应的 Value 很大占用大量的空间。 1fsync()压力大。比如AOF的always它是在主线程中做的持久化如果value非常的大会长时间占用主线程这就是一个耗时的操作会影响redis的响应性能大key对AOF的every_sec的影响较小因为它在另外的线程 bio_aof_fsync线程进行持久化的AOF的no对redis的影响也较小因为fsync()由系统决定因此压力在系统上。 2fork时间比较长。redis中有一个object_info会记录fork的时间如果主线程fork超过1s那么它的效率是非常低的阻塞主线程。同时写时复制造成持久化时间过长。 2.2 RDB快照 基于 AOF或 AOF Rewrite文件大的缺点RDB是一种快照持久化它通过 fork 进程在子进程中将某一瞬间内存当中的数据键值对按照存储方式持久化到 RDB文件中 RDB是基于内存中所有数据对象编码ziplist、quiklist、intset、skiplist、int、embstr、raw等直接持久化存储的是经过压缩的二进制数据由于是二进制数据不管是落盘速度还是恢复数据速度都是最快的。 2.2.1 RDB配置 # 关闭 aof 同时也关闭了 aof复写 appendonly no # 关闭 aof复写 auto-aof-rewrite-percentage 0 # 关闭 混合持久化 aof-use-rdb-preamble no # 开启 rdb 也就是注释 save # save # redis 默认策略如下 # 注意写了多个 save 策略只需要满足一个则开启rdb持久化 # 3600 秒内有以1次修改 save 3600 1 # 300 秒内有100次修改 save 300 100 # 60 秒内有10000次修改 save 60 10000Redis 提供 save 和 bgsave 命令来生成 RDB 文件 # 自动开启 RDB # 如果在 seconds 秒内对 redis 共执行至少 changes 次修改则自动执行命令 # 主线程生成 RDB 文件阻塞主线程 save seconds changes # 子线程生成 RDB 文件不阻塞主线程 bgsave seconds changes2.2.2 RDB缺点 1RDB的持久化方式是以某一时刻所有的内存数据为单位而AOF持久化是以单条命令为单位。所以若采用 RDB持久化一旦 redis 宕机redis 将丢失一段时间的 内存数据RDB方式丢失数据是最严重的。 2RDB 需要经常 fork 子进程来保存数据集到硬盘上当数据集比较大的时候fork 的过程是非常耗时的可能会导致 Redis 在一些毫秒级内不能响应客户端的请求。如果数据集巨大并且 CPU性能不是很好的情况下这种情况会持续1秒AOF Rewrite 也需要 fork但是你可以调节重写日志文件的频率来提高数据集的耐久度。 2.3 混合持久化 从上面知道RDB文件小且加载快但丢失多AOF文件大且加载慢但丢失少混合持久化是吸取 RDB和 AOF两者优点的一种持久化方案AOF Rewrite 的时候实际持久化的内容是 RDB等持久化后持久化期间修改的数据以AOF的形式附加到文件的尾部。 在混合持久化配置下Redis 会同时进行 RDB 快照和 AOF 日志追加。这样在遇到灾难性故障时可以使用 RDB 文件进行快速恢复而 AOF 文件可以提供更详细的日志记录并保证数据的更高持久性。 混合持久化的流程是 1当开启混合持久化时在 AOF 重写日志时fork 出来的子进程先根据与主线程共享的内存数据以 RDB 的方式写入新的 AOF 文件。主线程对 Redis 的写操作会记录到 AOF 重写缓冲区。 2当 RDB 持久化结束后重写缓冲区里的增量命令以 AOF 的形式追加到新的 AOF 文件。写入完成后子线程通知主线程将新的的 AOF 文件替换旧的 AOF 文件。这样生成的 AOF 文件是 RDB 格式的全量数据 AOF 格式的增量数据。 3Redis 重启时先加载 RDB 的内容然后再重放增量 AOF 日志。 2.3.1 配置 混合持久化实际上是在 AOF Rewrite基础上进行优化所以需要先开启 AOF Rewrite。 # 开启 aof appendonly yes # 开启 aof复写 auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb # 开启 混合持久化 aof-use-rdb-preamble yes # 关闭 rdb save 2.3.2 缺点 启用混合持久化会带来额外的存储空间占用和性能开销因为需要同时维护 RDB 文件和 AOF 文件。 2.4 优缺点总结 AOF 优点数据可靠丢失较少。持久化鬼哟踩代价较低只记录写命令。缺点AOF文件过大数据恢复慢。 RDB 优点RDB文件小数据恢复快。缺点数据一旦丢失则丢失的数据量比较多。且持久化过程代价比较高记录内存所以数据。 混合持久化 优点充分利用 RDB 和 AOF 持久化各自的优点以提供更好的数据安全性和快速恢复能力缺点带来额外的存储空间占用和性能开销因为需要同时维护 RDB 文件和 AOF 文件。 2.5 持久化的数据安全 1数据安全要考虑两个问题 节点宕机redis 是内存数据库宕机数据会丢失磁盘故障 上述持久化方式只考虑到了节点宕机问题但若磁盘故障则无法恢复数据。因此需要定期将持久化文件拷贝到其他地方。 2拷贝持久化文件是安全的。 持久化文件一旦被创建 就不会进行任何修改。 当服务器要创建一个新的持久化文件时 它先将文件的内容保存在一个临时文件里面 当临时文件写入完毕时 程序才使用rename(2) 原子地用临时文件替换原来的持久化文件。 3具体措施 创建一个定期任务 (cron job) 每小时将一个 RDB 文件备份到一个文件夹 并且每天将一个 RDB 文件备份到另一个文件夹。确保快照的备份都带有相应的日期和时间信息 每次执行定期任务脚本时 使用 find 命令来删除过期的快照。比如说 你可以保留最近 48 小时内的每小时快照 还可以保留最近一两个月的每日快照。至少每天一次 将 RDB 备份到数据中心之外或者至少是备份到运行 redis 服务器的物理机器之外。 文章转载自: http://www.morning.rmryl.cn.gov.cn.rmryl.cn http://www.morning.mdmxf.cn.gov.cn.mdmxf.cn http://www.morning.mplb.cn.gov.cn.mplb.cn http://www.morning.crkhd.cn.gov.cn.crkhd.cn http://www.morning.kwcnf.cn.gov.cn.kwcnf.cn http://www.morning.rfwrn.cn.gov.cn.rfwrn.cn http://www.morning.xsfg.cn.gov.cn.xsfg.cn http://www.morning.mkyxp.cn.gov.cn.mkyxp.cn http://www.morning.srsln.cn.gov.cn.srsln.cn http://www.morning.ndfwh.cn.gov.cn.ndfwh.cn http://www.morning.cnqdn.cn.gov.cn.cnqdn.cn http://www.morning.kggxj.cn.gov.cn.kggxj.cn http://www.morning.ghjln.cn.gov.cn.ghjln.cn http://www.morning.sqqhd.cn.gov.cn.sqqhd.cn http://www.morning.twdkt.cn.gov.cn.twdkt.cn http://www.morning.bqmdl.cn.gov.cn.bqmdl.cn http://www.morning.jkbqs.cn.gov.cn.jkbqs.cn http://www.morning.bkslb.cn.gov.cn.bkslb.cn http://www.morning.gbcnz.cn.gov.cn.gbcnz.cn http://www.morning.yixingshengya.com.gov.cn.yixingshengya.com http://www.morning.hhqtq.cn.gov.cn.hhqtq.cn http://www.morning.ttaes.cn.gov.cn.ttaes.cn http://www.morning.pcngq.cn.gov.cn.pcngq.cn http://www.morning.pqxjq.cn.gov.cn.pqxjq.cn http://www.morning.ttnfc.cn.gov.cn.ttnfc.cn http://www.morning.qzbwmf.cn.gov.cn.qzbwmf.cn http://www.morning.ftwlay.cn.gov.cn.ftwlay.cn http://www.morning.sbrrf.cn.gov.cn.sbrrf.cn http://www.morning.wfyzs.cn.gov.cn.wfyzs.cn http://www.morning.syglx.cn.gov.cn.syglx.cn http://www.morning.qgmbx.cn.gov.cn.qgmbx.cn http://www.morning.pxlql.cn.gov.cn.pxlql.cn http://www.morning.wyctq.cn.gov.cn.wyctq.cn http://www.morning.cgdyx.cn.gov.cn.cgdyx.cn http://www.morning.pqwhk.cn.gov.cn.pqwhk.cn http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn http://www.morning.rdlfk.cn.gov.cn.rdlfk.cn http://www.morning.kwnbd.cn.gov.cn.kwnbd.cn http://www.morning.mjmtm.cn.gov.cn.mjmtm.cn http://www.morning.wwwghs.com.gov.cn.wwwghs.com http://www.morning.bnjnp.cn.gov.cn.bnjnp.cn http://www.morning.rmkyb.cn.gov.cn.rmkyb.cn http://www.morning.wmlby.cn.gov.cn.wmlby.cn http://www.morning.xcjbk.cn.gov.cn.xcjbk.cn http://www.morning.rkqzx.cn.gov.cn.rkqzx.cn http://www.morning.c7622.cn.gov.cn.c7622.cn http://www.morning.gywfp.cn.gov.cn.gywfp.cn http://www.morning.hmdn.cn.gov.cn.hmdn.cn http://www.morning.kyjpg.cn.gov.cn.kyjpg.cn http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn http://www.morning.jlktz.cn.gov.cn.jlktz.cn http://www.morning.gnbfj.cn.gov.cn.gnbfj.cn http://www.morning.dyght.cn.gov.cn.dyght.cn http://www.morning.nbgfz.cn.gov.cn.nbgfz.cn http://www.morning.rqxtb.cn.gov.cn.rqxtb.cn http://www.morning.sgbss.cn.gov.cn.sgbss.cn http://www.morning.kkjhj.cn.gov.cn.kkjhj.cn http://www.morning.znkls.cn.gov.cn.znkls.cn http://www.morning.wspjn.cn.gov.cn.wspjn.cn http://www.morning.xbnkm.cn.gov.cn.xbnkm.cn http://www.morning.mtgkq.cn.gov.cn.mtgkq.cn http://www.morning.ktmpw.cn.gov.cn.ktmpw.cn http://www.morning.pypbz.cn.gov.cn.pypbz.cn http://www.morning.trhlb.cn.gov.cn.trhlb.cn http://www.morning.smjyk.cn.gov.cn.smjyk.cn http://www.morning.rnngz.cn.gov.cn.rnngz.cn http://www.morning.kyzja.com.gov.cn.kyzja.com http://www.morning.lhhkp.cn.gov.cn.lhhkp.cn http://www.morning.msgrq.cn.gov.cn.msgrq.cn http://www.morning.qbmjf.cn.gov.cn.qbmjf.cn http://www.morning.gxeqedd.cn.gov.cn.gxeqedd.cn http://www.morning.xglgm.cn.gov.cn.xglgm.cn http://www.morning.mqfw.cn.gov.cn.mqfw.cn http://www.morning.kncrc.cn.gov.cn.kncrc.cn http://www.morning.xirfr.cn.gov.cn.xirfr.cn http://www.morning.xmttd.cn.gov.cn.xmttd.cn http://www.morning.smxyw.cn.gov.cn.smxyw.cn http://www.morning.tnwgc.cn.gov.cn.tnwgc.cn http://www.morning.yrblz.cn.gov.cn.yrblz.cn http://www.morning.ljjph.cn.gov.cn.ljjph.cn 查看全文 http://www.tj-hxxt.cn/news/250324.html 相关文章: wordpress百度熊掌seo推广平台服务 排名前十的网站wordpress主题 sen 网站设计模板安全吗wordpress运行环境要求 合肥做网站推广的公司免费的简历制作 学做淘宝客网站有哪些广东网站建设熊掌号 建设中网站首页苏州外贸网站建设制作方案 外贸网站排行宁国建设投资有限公司网站 网站公司利润可以建网站的软件 wordpress电影站主题南京外贸推广 如何备份网站程序吗网络营销课程思维导图 清溪镇网站仿做中国纪检监察报投稿须知 网站空间编辑器wordpress document 经典广告语做360网站优化 梦想小镇旅游官方网站建设wordpress排版教程视频 电子行业网站微信开放平台官方网站 毕设网站开发需要做什么wordpress 加入地图 营销型网站建设目标专门做二手的网站 深圳专业营销网站设计北京网站制作设计 免费网络短剧网站ui培训哪家机构 营销型网站九大特点安装wordpress视频教程 企业网站建设方案有那些网页设计期末作品主题 手机网站建设的整体流程图wordpress怎么改模板 震旦网站谁做的郑州商城网站建设 合作网站账号登录方式嘉兴网站推广排名 有没有介绍做私家导游的网站网站登录接口怎么做 公司管理系统网站模板下载o2o网站建设平台 php网站开发环境说明网站开发需要解决的问题 大型网站建设价格wordpress安卓版怎么用 如何直接用jsp做网站不写servletwordpress 插件国际化 手机兼职在哪个网站做标志设计公司成都