- Nagios安装部署全攻略
weixin_34109408
memcachedphp操作系统
概述:公司的生产机器一共有12台,2台LVS(主备)、2台nginx、2台tomcat、1台后台服务器(nginx_tomcat)、3台mysql(主+备+异地灾备)、1台图片服务器、2台memcached.可以看出网站的架构就是基于高可用的原理的,每个层面都做了主备、系统的PV不高,对于并发布,高性能没有那么苛求,对于系统安全、稳定有较高要求,前期已经对系统做了各种日志分析,WAF配置,漏洞扫面
- Redis & RabbitMQ
tianshuiyimo
通用理念redisrabbitmq数据库
Redis:轻量级,NoSQL数据库redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,r
- 300分钟吃透分布式缓存-03讲:设计缓存架构时需要考量哪些因素?
机智阳
java分布式缓存架构java后端运维
缓存的引入及架构设计缓存组件选择在设计架构缓存时,你首先要选定缓存组件,比如要用Local-Cache,还是Redis、Memcached、Pika等开源缓存组件,如果业务缓存需求比较特殊,你还要考虑是直接定制开发一个新的缓存组件,还是对开源缓存进行二次开发,来满足业务需要。缓存数据结构设计确定好缓存组件后,你还要根据业务访问的特点,进行缓存数据结构的设计。对于直接简单KV读写的业务,你可以将这些
- Linux Memcached 安装
执笔轻叹_
Memcached支持许多平台:Linux、FreeBSD、Solaris、MacOS,也可以安装在Windows上。Linux系统安装memcached,首先要先安装libevent库。sudoapt-getinstalllibeventibevent-dev自动下载安装(Ubuntu/Debian)yuminstalllibeventlibevent-devel自动下载安装(Redhat/Fe
- Redis篇----第一篇
数据大魔王
java面试题套2redis数据库缓存
系列文章目录文章目录系列文章目录前言一、什么是Redis?二、Redis与其他key-value存储有什么不同?三、Redis的数据类型?四、使用Redis有哪些好处?五、Redis相比Memcached有哪些优势?前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。一、什么是Redis?Redis是完全
- 分布式缓存上—浅谈缓存的理解
ZNineSun
分布式缓存CDN设计原则反向代理过期策略
文章目录1.概述1.1概念1.2作用1.3原理2.缓存的分类2.1CDN缓存应用场景优点2.2反向代理缓存应用场景2.3本地应用缓存应用场景缓存介质实现1.通过编程实现2.Ehcahe缓存数据过期策略3.分布式缓存3.1Memcached基本介绍特点基本架构缓存数据过期策略数据淘汰内部实现分布式集群实现数据存储步骤:分布式算法3.2Redis基本介绍数据模型数据淘汰策略数据淘汰内部实现持久化方式底
- Redis由浅到深层次讲解和springboot实战(服务器层面的搭建部署)
三横同学
服务器redisredisspringboot服务器
Redis由深层次讲解到springboot实战一、Nosql概述为什么使用Nosql1、单机Mysql时代90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题数据量增加到一定程度,单机数据库就放不下了数据的索引(B+Tree),一个机器内存也存放不下访问量变大后(读写混合),一台服务器承受不住。2、Memcached(缓存)+Mysql+垂直拆分(读写分离)
- NoSQL-lesson13-Redis缓存技术-运维篇
学无止境_9b65
NoSQL-lesson13-Redis缓存技术-运维篇0.NoSQL产品(key-value)RDBMS:MySQL,Oracle,MSSQL,PGNoSQL:Redis,MongoDB,列存储存储相关NewSQL----->分布式数据库架构(学习了MongoDB)缓存产品介绍:memcached(大公司会做二次开发)redisTair1.Redis功能介绍数据类型丰富(笔试、面试)*****支
- Redis 持久化机制
happyJared
持久化数据,也就是将内存中的数据写入到硬盘里,大部分原因是为了之后重用数据(比如重启机器、机器故障后恢复数据),或是为了防止系统故障而将数据备份到远程。Redis不同于Memcached的重要一点就是,Redis支持持久化,且支持两种不同的持久化操作。默认的持久化方式叫快照(snapshotting,RDB),另一种方式是只追加文件(append-onlyfile,AOF)。快照(snapshot
- redis搭建
就是这么任性_ac9c
RedisMongoDBNoSQL•NoSQL(NoSQL=NotOnlySQL)–意思是"不仅仅是SQL“–泛指非关系型数据库–不需要预先定义数据存储结构–表的每条记录都可以有不同的类型和结构NoSQL服务软件•主流软件–Redis–MongoDB–Memcached–CouchDB–Neo4j–FlockDBRedis特点:–支持数据持久化,可以把内存里数据保存到硬盘中–不仅仅支持key/va
- OpenStack系列之一:手动部署OpenStack Queens(5.Dashboard)
小六的昵称已被使用
title:OpenStack系列之一:手动部署OpenStackQueens(5.Dashboard)categories:Linuxtags:-OpenStacktimezone:Asia/Shanghaidate:2019-01-21本节假定使用ApacheHTTP服务器和Memcached服务正确安装,配置和操作Identity服务。第一步:安装和配置组件1.Installthepacka
- Django(12):缓存
Ethan-running
#Django开发入门缓存djangopython
目录1.缓存的三种模式1.1CacheAside1.2Read/WriteThrough1.3WriteBehind2.缓存问题2.1缓存穿透2.2缓存雪崩2.3缓存击穿3.Django中的缓存3.1缓存方式3.1.1基于开发的虚拟缓存3.1.2基于本地内存的缓存3.1.3基于文件的缓存3.1.4基于数据库的缓存3.1.5基于Memcached的缓存3.1.6基于Redis的缓存3.2数据缓存操作
- Django缓存清理和缓存设置
爱的太深,太认真
pythondjangodjango
Django缓存清理和缓存设置缓存清理方法很多,提供两个思路1、直接去清理用来存缓存的介质,如memcached、redis()2、自己写程序脚本清空。3、使用django-extensions来清空缓存2、自己写程序脚本清空步骤:1、给manage.py添加自定义命令,用来执行写好的脚本。如pythonmanage.pycleancache#清空缓存++obj±-obj±-app01–manag
- django中的缓存功能
攻城狮的梦
python开发djangopython
一:介绍Django中的缓存功能是一个重要的性能优化手段,它可以将某些耗时的操作(如数据库查询、复杂的计算等)的结果存储起来,以便在后续的请求中直接使用这些缓存的结果,而不是重新执行耗时的操作。Django提供了多种缓存后端供开发者选择,包括内存缓存、数据库缓存、文件缓存和第三方缓存服务(如Redis、Memcached等)。以下是Django中缓存功能的一些关键方面:1:全局缓存:Django的
- 宝塔使用php命令,宝塔面板Linux版命令大全
weixin_39669769
宝塔使用php命令
初墨,从建站之初使用的就是宝塔面板。这种可视化的操作界面给我这样的“小白”带来了极大的方便,让不懂代码的我也可以拥有自己的一个小站。网上偶然闲逛,发现了这些代码命令合集,想到以后可能会用的到,特地收藏转发。这些命令含从安装、管理、Nginx、Apache、MySQL、FTP、PHP、Redis、Memcached,留档以备后续使用。一、安装宝塔1、Linux面板5.9(稳定版)安装命令Centos
- 宝塔Linux面板命令大全
ao200945
操作系统运维php
前言发现了官方发布的面板文档解决了燃眉之急,这些命令含从安装、管理、Nginx、Apache、MySQL、FTP、PHP、Redis、Memcached,留档以备后续使用。安装宝塔Centos安装脚本yuminstall-ywget&&wget-Oinstall.shhttp://download.bt.cn/install/install.sh&&shinstall.shUbuntu/Deepi
- Go 实现基于内存的 LRU 缓存
2301_79485928
Golanggolang缓存开发语言后端
缓存是在平时开发中最常用的中间件之一,尤其是在WEB开发中更为常见,大家最常用的肯定还是Redis或者Memcached之类的中间件。所以对于自己实现一个Cache可能并没有那么熟悉,但是在很多场景下,我们使用一些网络缓存会遇到一些瓶颈,比如说传输数据量比较大,或者传输非常频繁,都可能会导致一些性能瓶颈,尤其是在网络I/O上。所以这种场景下,很可能就需要我们自己在应用内实现一个二级缓存。本文我们就
- MAVEN 手动安装 jar source javadoc 到 本地仓库
何家小富富
MAVEN手动安装jarsourcejavadoc到本地仓库#安装jarmvninstall:install-file-Dfile=D:/spymemcached-2.10.3.jar-DgroupId=net.spy-DartifactId=spymemcached-Dversion=2.10.3-Dpackaging=jar#安装sourcemvninstall:install-file-Df
- redis的主从配置模拟(一主双从)
藻头男
redis数据库缓存服务器运维linux
目录先来给大家扩展机道面试官经常会问到关于redis的题一、redis有哪些好处二、redis相比memcached有哪些优势三、redis常见性能问题和解决方案四、redis集群的工作原理五、redis主从的原理redis的主从配置模拟(一主双从)一、准备环境二、分别安装redis三、主配置文件修改四、重启redis,测试先来给大家扩展机道面试官经常会问到关于redis的题一、redis有哪些好
- Memcached缓存服务器
藻头男
缓存memcachedredis数据库运维服务器linux
目录简介NoSQL的优点和缺点下面扩展一下关系型数据库和非关系型数据库的区别Memcached特点原理配置与安装Memcached我们直接使用yum安装就可以了安装后启动修改配置文件测试开发端安装telnet进行远程连接memcached,端口探测以下显示为连接成功测试Memcached/redis是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web等应用的
- 2019-12-24
笑起来真好看LQQ
一、Redis1.redis和memcached什么区别?2.为什么高并发下有时单线程的redis比多线程的memcached效率要高?3.redis主从复制如何实现的?4.redis的集群模式如何实现?5.redis的key是如何寻址的?6.使用redis如何设计分布式锁?说一下实现思路?使用zk可以吗?如何实现?这两种有什么区别?7.知道redis的持久化吗?底层如何实现的?有什么优点缺点?8
- Redis中内存淘汰算法实现
九五一
Redis核心技术与实战redis算法数据库
Redis中内存淘汰算法实现Redis的maxmemory支持的内存淘汰机制使得其成为一种有效的缓存方案,成为memcached的有效替代方案。当内存达到maxmemory后,Redis会按照maxmemory-policy启动淘汰策略。Redis3.0中已有淘汰机制:noevictionallkeys-lruvolatile-lruallkeys-randomvolatile-randomvol
- linux系统非关系型数据库memcached
丨析木丨
linux数据库linuxnosqlmemcached
memcached特点原理配置安装Memcached特点内置内存存储方式-----------为了提高性能,memcached中保存的数据都存储在memcache内置的内存存储空间中。由于数据仅存在于内存中,重启操作系统会导致全部数据消失简单key/value存储---------------服务器不关心数据本身的意义及结构,只要是可序列化数据即可。存储项由“键、过期时间、可选的标志及数据”四个部
- memcached被攻击的解决方案
吾心即宇宙_
打开注册表:regedit找到:memcached下的ImagePathmemcached修改ImagePath在最后加上:-l127.0.0.1-l127.0.0.1最后重启memcached服务,就限制了memcached仅本地访问memcached服务路径
- centos memcache php,centos7安装memcache
只想静静地老湿敷
centosmemcachephp
1.安装yuminstallmemcached2.启动/usr/bin/memcached-b-l127.0.0.1-p11211-m150-uroot解释:-b守护进程模式(退出终端窗口之后使程序还在运行)-l指定IP地址127.0.0.1-p指定端口号11211-m为memcached分配多少内存(单位:M)-u指定使用哪个用户启动memcached3.查看ps-ef|grepmemcache
- centos 6.5 php memcached,centos 6.5 php-memcache扩展安装
小xs
centos6.5phpmemcached
php的扩展memcache,不支持cas,所以我们要装memcached扩展,memcached扩展是基于libmemcached,所以要先安装libmemcached一、下载软件1、libmemcached下载地址:http://pecl.php.net/package/memcached文件:memcached-2.2.0.tgz2、php-memcached下载地址:https://lau
- 安装php-memcache扩展
Zxingduo
mysql
我这个是在centos7.4后安装的memcached扩展记录一下过程在这个网址下可以找到php的大部分扩展然后载https://pecl.php.net/package/memcached然后再解压tar-zxvfmemcached-3.1cdmemcached-3.1进到里面后并没有configure,这个东西那我就去生成一下,找到安装php的bin目录下面会有一个phpize然后执行一下这个
- CentOS8 安装 Memcached 和PHP扩展
doubleface999
服务器运营centosmemcached
新服务器的系统是CentOS8,安装Memcached以及PHP扩展,以为像之前(CentOS6)一样,很简单两行yum命令就搞定,没想到遇到了点麻烦,最后都顺利解决,安装过程记录一下,有点流水账,希望对大家有帮助。一、安装Memcached安装Memcached很顺利:1yuminstallmemcached命令安装;2memcached-h命令查看帮助信息;3查看配置信息/etc/syscon
- centos7 安装php-memcache 扩展报错
lxw1844912514
phpmemcached开发语言
php_memcached.c:Infunction'zim_Memcached___construct':php_memcached.c:1284:20:error:lvaluerequiredasleftoperandofassignmentGC_REFCOUNT(&le)=1;[root@bogonphp-memcached]#make&&makeinstall/bin/sh/usr/loc
- Redis笔记详细
立勤.
redis
一、Nosql概述为什么使用Nosql1、单机Mysql时代90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题数据量增加到一定程度,单机数据库就放不下了数据的索引(B+Tree),一个机器内存也存放不下访问量变大后(读写混合),一台服务器承受不住。2、Memcached(缓存)+Mysql+垂直拆分(读写分离)网站80%的情况都是在读,每次都要去查询数据库的
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持