- Linux企业运维——Redis的安装部署及主从复制、master自动切换,redis、mysql读写分离
已认证运维工程师
Linux企业运维redis主从复制redis主从切换redis集群redis-mysql读写分离
目录一、Redis是什么二、redis的安装部署三、redis主从复制四、Sentine主从自动切换1.配置sentinel文件2.master自动切换五、redis的集群cluster集群原理1.集群构建手动构建集群脚本构建集群2.节点主从自动切换3.添加节点和分片六、Redis+Mysql读写分离七、redis如何与mysql保持数据一致Gearman原理配置gearmand一、Redis是什
- Gearman-任务分发系统
瞎胡侃
其他gearman开源任务调度并行处理server
简介Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相比,Gearman更偏向于任务分发功能。Gearman提供了一个通用的应用程序,可以工作在更加适合处理这项任务的其他计算机或其他处理器上。它允许并行处理,载入平衡处理,而且可以在不同语言间进行调用。它可以应用于各种各样的应用场合。Gearman最初用于LiveJournal的图片resize功能,由于图片resize需要
- Gearman 集中处理日志
SkTj
F#jobserver安装在gearman-job服务器上。worker安装在worker服务器上。全部以gearman用户运行。jobserver启动命令:/opt/app/gearman/sbin/gearmand-L192.168.0.x-dworker启动命令:(/opt/app/gearman/bin/gearman-w-hgearman-job-fbusinessLogger|/usr
- gearman使用心得
天下无敌笨笨熊
分布式
gearman基础工作原理部署架构本质上,gearman可以认为是一个分布式任务队列,client是生产者,worker则是消费者。gearman并不主动分发任务,而是由worker到它那里去取任务执行,所以它采用的是类似kafka的pull消费模式。启动、停止服务servicegearmandstartservicegearmandrestartservicegearmandstop修改gear
- gearman PHP7扩展安装
ittony
注:官方提供的只支持PHP6,需要第3方支持,https://github.com/wcgallego/pecl-gearmanyuminstalllibgearman-devel-y如没装,则config时报错error:Pleaseinstalllibgearmanwgethttps://github.com/wcgallego/pecl-gearman/archive/master.zipu
- Linux企业运维---redis2
gk1205&0802
运维服务器
配置gearman实现数据同步Gearman是一个支持分布式的任务分发框架。GearmanJobServer:Gearman核心程序,以守护进程形式运行在后台。GearmanClient:可以理解为任务的收件员,比如我要在后台执行一个发送邮件的任务,可以在程序中调用一个GearmanClient并传入邮件的信息,然后就可以将执行结果立即展示给用户,而任务本身会慢慢在后台运行。GearmanWork
- lamp架构之redis(3):redis和mysql的整合
weixin_44717560
redismysql缓存
redis和mysql的整合一、redis结合mysql1.redis和mysql的基础概念2.redis和mysql的区别总结3.为什么要作缓存4.redis作为缓存二、环境部署三、mysql+redis部署四、配置gearman实现redis和mysql的数据同步1.redis和mysql结合后出现的问题2.解决方案3.gearman同步效果测试一、redis结合mysql1.redis和my
- redis的主从复制+集群+mysql缓存服务
LY_CS
redis数据库database
目录一、Redis主从复制1.redis安装配置2.Redis主从的自动切换3.集群cluster4.Rediscluster集群的故障迁移5.redis+mysql的缓存服务器6.配置gearman实现Redis和MySQL数据同步1什么是Redisredis是一个高性能的、开源的key-value数据库,而且redis是一个NOSQL类型数据库(非关系型的数据库),是为解决高并发、高扩展,大数
- MySQL+Redis缓存+Gearman共同构建数据库缓存的方法
目录前言一、前端搭建1、Nginx部署2、php部署安装以及模块安装二、后端部署1.MySQL部署2.Redis作为缓存的部署以及安装三、germand分布式缓存位置部署1、gearman原理2、C端部署3、S端部署总结前言一、前端搭建1、Nginx部署安装部署Nginxyuminstallunzipopenssl-develpcre-develgccmake-ytar-zxfnginx-1.22
- 企业运维 --- LAMP架构( redis [2] 集群部署、redis与mysql的结合)
奋斗的小猴猴
redismysql数据库
目录一、redis集群部署1.RedisCluster(Redis集群)简介2.搭建集群2、redis与mysql的结合1.环境部署2.配置gearman实现数据同步一、redis集群部署Redis集群是一个提供在多个Redis节点间共享数据的程序集,Redis集群并不支持处理多个keys的命令,因为需要移动数据,这样在高负载的情况下会发生不可预计的后果。Redis集群的优势:自动分割数据到不同的
- Linux企业运维——Redis部署+redis主从复制+redis主从自动切换(基于sentinel哨兵模式)+集群+redis+mysql 的缓存服务器+配置 gearman 实现数据同步
阿王不想秃头
运维笔记redislinuxmysql
一、redis是什么?1.Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。Redis内置了复制(rep
- Redis-Cluster集群、Redis持久化、Redis作MySQL的缓存服务器、配置gearman实现Redis和MySQL数据同步
lpf_linux
笔记redis数据库linux
一Cluster集群Cluster集群简介Redis的哨兵模式基本已经可以实现高可用,读写分离,但是在这种模式下每台Redis服务器都存储相同的数据,很浪费内存,所以在redis3.0上加入了Cluster集群模式,实现了Redis的分布式存储,也就是说每台Redis节点上存储不同的内容。其结构特点:1、所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。
- 构建基于redis+gearman+nodejs 的消息推送系统
知~仁~勇
phpnode.js消息推送
转自:http://www.woyuw.com/?p=59前言系统的核心服务为优惠券获取、预订业务(酒店、机票等)。服务供应商有大型运营商、实体企业。随着PC、各种终端的涌现,人们对消息的即时性要求越来越高,同时也要求我们的运维第一时间能更好服务运营商、实体企业。这就要求我们的信息推送是多方的、快速的、有效的。系统定位在:构建基于事件的消息推送系统事件分为:优惠券、预订业务系统业务场景1客服通过基
- Linux企业化运维--6.Redis的部署+redis主从复制+redis自动切换+集群+redis+mysql 的缓存服务器+ gearman
代码牛马
redislinux数据库
目录1.Redis的安装2.Redis的主从复制3.Redis主从的自动切换1.配置server3的redis2.在server1中,配置sentinel4.集群cluster1.构建集群2.节点的主从自动切换3.添加节点和分配哈希槽5.redis+mysql的缓存服务器6.redis和mysql的数据一致1.Gearman2.在server3安装数据库的开发包3.注册UDF函数4.server3
- lamp架构--redis数据库(redis结合mysql,自动同步)
dandan-99
文章目录1.redis结合mysql1.1lamp架构搭建1.2server13上启动redis,server14安装mysql1.3测试文件配置1.4访问测试2.redis与mysql的自动同步2.1整体流程框图2.2安装lib_mysqludf_json2.3安装gearman-mysql-udf2.4配置gearman的worker端2.5配置mysql触发器2.6访问测试1.redis结合
- lamp(3)redis服务
qiao_qing
文章目录1.redis主从复制环境部署1)system启动2)redis常用指令:3)redis自动故障迁移2.Redis集群1.rediscluster16384号哈希槽2.redis持久化3.mysql和redis同步机制1)安装lib_mysqludf_json2)安装gearman-mysql-udf3.varnish1.根据不同的域名,分发到不同的后端主机2.负载均衡3.健康检查4.ng
- Gearman入门及使用(JAVA调用)
zhang_wq
前言因为新公司用了这个框架做任务分发,所以我才有机会知道并学习!那么Gearman到底是个什么样子的框架或系统呢?它有哪些作用、优缺点呢?Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。可用于sso分发连接,但有弊端就是占用系统资源较多,例如CPU、内存。(来源于百度百科)简单来说,Gear
- Jenkins高可用方案汇总
萩茝
前言现在的企业很多都在用Jenkins做持续集成,各个业务端都依靠Jenkins,部署Jenkins服务时如何保障服务的高可用变得尤为重要。以下是最近收集的一些方案。Gearman+Jenkins这是openstack团队使用的方案,Jenkins本身是单体的,即只能有一个JenkinsMaster。虽然你也可以在多台机器上部署多个JenkinsMaster,但这些Master之间没有联系,都是各
- JAVA通过Gearman实现MySQL到Redis的数据同步(异步复制)
挨呀小黄
javaredis
MySQL到Redis数据复制方案无论MySQL还是Redis,自身都带有数据同步的机制,像比较常用的MySQL的Master/Slave模式,就是由Slave端分析Master的binlog来实现的,这样的数据复制其实还是一个异步过程,只不过当服务器都在同一内网时,异步的延迟几乎可以忽略。那么理论上我们也可以用同样方式,分析MySQL的binlog文件并将数据插入Redis。但是这需要对binl
- 微课 | 云CI ZUUL应用方案系列(3) 方案设计
中兴开发者社区
点击上方“中兴开发者社区”,关注我们每天读一篇一线开发者原创好文DevOps微课系列旨在帮助用户学习DevOps实践。1.方案框架OpenStackCI典型的基于ZUUL框架的通信机制图如下:开发者提交变更到Gerrit代码库后会产生Gerrit事件流,ZUUL会侦测相关事件并进行相关处理(比如准备变更测试的临时代码库),然后通过GearmanServer分发任务到JenkinsMaster,Je
- PHP安装gearman扩展编译报错:Makefile:194: recipe for target 'php_gearman.lo' failed
三级狗
PHPmake报错PHP7gearman扩展
编译gearman-php报错:Makefile:194:recipefortarget‘php_gearman.lo’failedubuntu下安装PHP7,编译安装gearman扩展时,make遇到这个报错。按照网上的教程,从wgethttp://pecl.php.net/get/gearman-1.1.1.tgz下载下来的版本无法编译通过,查询之后这个链接显示:php7暂时还不支持gearm
- 编译gearman提示缺少boost
chipiqiao3947
c/c++运维
编译german时提示缺少boost:checkingforboostlib>=1.39...configure:Wecouldnotdetecttheboostlibraries(version1.39orhigher).Ifyouhaveastagedboostlibrary(stillnotinstalled)pleasespecify$BOOST_ROOTinyourenvironment
- Gearman任务管理服务器
zoneofyang
随着系统的膨胀,越来越多的以来后台各种服务。前期用个队列或者后台定时任务啥的足以搞定。但是随着服务增多,管理和升级越来越费劲,同时也没找到合适的工具。今天刚刚好看到Gearman,相当不错。不过个人感觉还是缺了点worker管理的容器,毕竟大量的worker是需要部署的,这个本身可能就有一定的工作量。希望能有类似容器的服务器可以统一管理后端运行的所有worker,而客户端直接激发任务即可。或者对于
- 最终屏幕录制方案
weixin_34216196
屏幕录制方案需求实现任务录制任务下发后自动将动画和音频录制为MP4的视频后台服务录制进度实时更新后续分享到视频播放平台,如爱奇艺、抖音等方案架构djangocommand启动服务gearman提交下发任务后端采用PyQt5搭建服务平台QProcess执行ffmpeg录制屏幕命令QThread维持gearmanworker接受任务WebDriver加载定制页面播放动画及音频前端实现动画加载,图片按浏
- centos6.6中service启动gearman服务
你是我的绝笔
centos6
#!/bin/bash#chkconfig:-8515#descrīption:service(/usr/local/gearmand-1.1.12/sbin/gearmand)./etc/rc.d/init.d/functionsstart(){echo-n$"Starting$prog"echo-e"gearman:[确定]"/usr/local/gearmand-1.1.12/sbin/ge
- Mac OS上安装Boost C++ Libraries
olivor
在安装MacOS上安装gearman时,提示没有找到boost,需要先安装BoostC++Libraries.安装步骤如下:1.在www.boost.org下载最新的BoostC++Libraries,目前为55版本http://jaist.dl.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.gz2.解压后,cdboost_
- centos(php7)下gearman实现异步处理队列任务
Object
支付宝回调异步通知centosgearman
安装gearman需要的环境wgethttps://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gztarzxvflibevent-2.1.8-stable.tar.gzcdlibevent-2.1.8-stable./configure--prefix=
- 视觉中国的NoSQL之路:从MySQL到MongoDB
原文链接
NoSQLMongoDB
起因视觉中国网站(www.chinavisual.com)是国内最大的创意人群的专业网站。2009年以前,同很多公司一样,我们的CMS和社区产品都构建于PHP+Nginx+MySQL之上;MySQL使用了Master+Master的部署方案;前端使用自己的PHP框架进行开发;Memcached作为缓存;Nginx进行Web服务和负载均衡;Gearman进行异步任务处理。在传统的基于静态内容(如文章
- Gearman及python客户端安装和简单试用
Just_Try
项目开发
Gearman及python客户端安装和简单试用Gearman简介Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。Gearman提供了一种通用的程序框架来将你的任务分发到不同的机器或者不同的进程当中。它提供了你进行并行工作的能力、负载均衡处理的能力,以及在不同程序语言之间沟通的能力。Gear
- 用于网页分类的python工具包
a13393665983
用于网页分类的python工具包web-classify用于网页分类的python工具包ProjectHomeDownloadsWikiIssuesSourceSummary|Updates|PeopleStarthisprojectActivity:MediumCodelicense:ApacheLicense2.0Labels:gearman,knn,web-classifyFeeds:Pro
- JAVA基础
灵静志远
位运算加载Date字符串池覆盖
一、类的初始化顺序
1 (静态变量,静态代码块)-->(变量,初始化块)--> 构造器
同一括号里的,根据它们在程序中的顺序来决定。上面所述是同一类中。如果是继承的情况,那就在父类到子类交替初始化。
二、String
1 String a = "abc";
JAVA虚拟机首先在字符串池中查找是否已经存在了值为"abc"的对象,根
- keepalived实现redis主从高可用
bylijinnan
redis
方案说明
两台机器(称为A和B),以统一的VIP对外提供服务
1.正常情况下,A和B都启动,B会把A的数据同步过来(B is slave of A)
2.当A挂了后,VIP漂移到B;B的keepalived 通知redis 执行:slaveof no one,由B提供服务
3.当A起来后,VIP不切换,仍在B上面;而A的keepalived 通知redis 执行slaveof B,开始
- java文件操作大全
0624chenhong
java
最近在博客园看到一篇比较全面的文件操作文章,转过来留着。
http://www.cnblogs.com/zhuocheng/archive/2011/12/12/2285290.html
转自http://blog.sina.com.cn/s/blog_4a9f789a0100ik3p.html
一.获得控制台用户输入的信息
&nbs
- android学习任务
不懂事的小屁孩
工作
任务
完成情况 搞清楚带箭头的pupupwindows和不带的使用 已完成 熟练使用pupupwindows和alertdialog,并搞清楚两者的区别 已完成 熟练使用android的线程handler,并敲示例代码 进行中 了解游戏2048的流程,并完成其代码工作 进行中-差几个actionbar 研究一下android的动画效果,写一个实例 已完成 复习fragem
- zoom.js
换个号韩国红果果
oom
它的基于bootstrap 的
https://raw.github.com/twbs/bootstrap/master/js/transition.js transition.js模块引用顺序
<link rel="stylesheet" href="style/zoom.css">
<script src=&q
- 详解Oracle云操作系统Solaris 11.2
蓝儿唯美
Solaris
当Oracle发布Solaris 11时,它将自己的操作系统称为第一个面向云的操作系统。Oracle在发布Solaris 11.2时继续它以云为中心的基调。但是,这些说法没有告诉我们为什么Solaris是配得上云的。幸好,我们不需要等太久。Solaris11.2有4个重要的技术可以在一个有效的云实现中发挥重要作用:OpenStack、内核域、统一存档(UA)和弹性虚拟交换(EVS)。
- spring学习——springmvc(一)
a-john
springMVC
Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)实现,能够帮助我们构建像Spring框架那样灵活和松耦合的Web应用程序。
1,跟踪Spring MVC的请求
请求的第一站是Spring的DispatcherServlet。与大多数基于Java的Web框架一样,Spring MVC所有的请求都会通过一个前端控制器Servlet。前
- hdu4342 History repeat itself-------多校联合五
aijuans
数论
水题就不多说什么了。
#include<iostream>#include<cstdlib>#include<stdio.h>#define ll __int64using namespace std;int main(){ int t; ll n; scanf("%d",&t); while(t--)
- EJB和javabean的区别
asia007
beanejb
EJB不是一般的JavaBean,EJB是企业级JavaBean,EJB一共分为3种,实体Bean,消息Bean,会话Bean,书写EJB是需要遵循一定的规范的,具体规范你可以参考相关的资料.另外,要运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,只需要安装Tomcat就可以了
1.EJB用于服务端应用开发, 而JavaBeans
- Struts的action和Result总结
百合不是茶
strutsAction配置Result配置
一:Action的配置详解:
下面是一个Struts中一个空的Struts.xml的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
&quo
- 如何带好自已的团队
bijian1013
项目管理团队管理团队
在网上看到博客"
怎么才能让团队成员好好干活"的评论,觉得写的比较好。 原文如下: 我做团队管理有几年了吧,我和你分享一下我认为带好团队的几点:
1.诚信
对团队内成员,无论是技术研究、交流、问题探讨,要尽可能的保持一种诚信的态度,用心去做好,你的团队会感觉得到。 2.努力提
- Java代码混淆工具
sunjing
ProGuard
Open Source Obfuscators
ProGuard
http://java-source.net/open-source/obfuscators/proguardProGuard is a free Java class file shrinker and obfuscator. It can detect and remove unused classes, fields, m
- 【Redis三】基于Redis sentinel的自动failover主从复制
bit1129
redis
在第二篇中使用2.8.17搭建了主从复制,但是它存在Master单点问题,为了解决这个问题,Redis从2.6开始引入sentinel,用于监控和管理Redis的主从复制环境,进行自动failover,即Master挂了后,sentinel自动从从服务器选出一个Master使主从复制集群仍然可以工作,如果Master醒来再次加入集群,只能以从服务器的形式工作。
什么是Sentine
- 使用代理实现Hibernate Dao层自动事务
白糖_
DAOspringAOP框架Hibernate
都说spring利用AOP实现自动事务处理机制非常好,但在只有hibernate这个框架情况下,我们开启session、管理事务就往往很麻烦。
public void save(Object obj){
Session session = this.getSession();
Transaction tran = session.beginTransaction();
try
- maven3实战读书笔记
braveCS
maven3
Maven简介
是什么?
Is a software project management and comprehension tool.项目管理工具
是基于POM概念(工程对象模型)
[设计重复、编码重复、文档重复、构建重复,maven最大化消除了构建的重复]
[与XP:简单、交流与反馈;测试驱动开发、十分钟构建、持续集成、富有信息的工作区]
功能:
- 编程之美-子数组的最大乘积
bylijinnan
编程之美
public class MaxProduct {
/**
* 编程之美 子数组的最大乘积
* 题目: 给定一个长度为N的整数数组,只允许使用乘法,不能用除法,计算任意N-1个数的组合中乘积中最大的一组,并写出算法的时间复杂度。
* 以下程序对应书上两种方法,求得“乘积中最大的一组”的乘积——都是有溢出的可能的。
* 但按题目的意思,是要求得这个子数组,而不
- 读书笔记-2
chengxuyuancsdn
读书笔记
1、反射
2、oracle年-月-日 时-分-秒
3、oracle创建有参、无参函数
4、oracle行转列
5、Struts2拦截器
6、Filter过滤器(web.xml)
1、反射
(1)检查类的结构
在java.lang.reflect包里有3个类Field,Method,Constructor分别用于描述类的域、方法和构造器。
2、oracle年月日时分秒
s
- [求学与房地产]慎重选择IT培训学校
comsci
it
关于培训学校的教学和教师的问题,我们就不讨论了,我主要关心的是这个问题
培训学校的教学楼和宿舍的环境和稳定性问题
我们大家都知道,房子是一个比较昂贵的东西,特别是那种能够当教室的房子...
&nb
- RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
daizj
oraclermanfilespersetPARALLELISM
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系 转
PARALLELISM ---
我们还可以通过parallelism参数来指定同时"自动"创建多少个通道:
RMAN > configure device type disk parallelism 3 ;
表示启动三个通道,可以加快备份恢复的速度。
- 简单排序:冒泡排序
dieslrae
冒泡排序
public void bubbleSort(int[] array){
for(int i=1;i<array.length;i++){
for(int k=0;k<array.length-i;k++){
if(array[k] > array[k+1]){
- 初二上学期难记单词三
dcj3sjt126com
sciet
concert 音乐会
tonight 今晚
famous 有名的;著名的
song 歌曲
thousand 千
accident 事故;灾难
careless 粗心的,大意的
break 折断;断裂;破碎
heart 心(脏)
happen 偶尔发生,碰巧
tourist 旅游者;观光者
science (自然)科学
marry 结婚
subject 题目;
- I.安装Memcahce 1. 安装依赖包libevent Memcache需要安装libevent,所以安装前可能需要执行 Shell代码 收藏代码
dcj3sjt126com
redis
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
前面3步应该没有问题,主要的问题是执行make的时候,出现了异常。
异常一:
make[2]: cc: Command not found
异常原因:没有安装g
- 并发容器
shuizhaosi888
并发容器
通过并发容器来改善同步容器的性能,同步容器将所有对容器状态的访问都串行化,来实现线程安全,这种方式严重降低并发性,当多个线程访问时,吞吐量严重降低。
并发容器ConcurrentHashMap
替代同步基于散列的Map,通过Lock控制。
&nb
- Spring Security(12)——Remember-Me功能
234390216
Spring SecurityRemember Me记住我
Remember-Me功能
目录
1.1 概述
1.2 基于简单加密token的方法
1.3 基于持久化token的方法
1.4 Remember-Me相关接口和实现
- 位运算
焦志广
位运算
一、位运算符C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
例如:9&am
- nodejs 数据库连接 mongodb mysql
liguangsong
mongodbmysqlnode数据库连接
1.mysql 连接
package.json中dependencies加入
"mysql":"~2.7.0"
执行 npm install
在config 下创建文件 database.js
- java动态编译
olive6615
javaHotSpotjvm动态编译
在HotSpot虚拟机中,有两个技术是至关重要的,即动态编译(Dynamic compilation)和Profiling。
HotSpot是如何动态编译Javad的bytecode呢?Java bytecode是以解释方式被load到虚拟机的。HotSpot里有一个运行监视器,即Profile Monitor,专门监视
- Storm0.9.5的集群部署配置优化
roadrunners
优化storm.yaml
nimbus结点配置(storm.yaml)信息:
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional inf
- 101个MySQL 的调节和优化的提示
tomcat_oracle
mysql
1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器)。 4. 使用高级的RAID(注:Redundant Arrays of Inexpensive Disks,即磁盘阵列
- zoj 3829 Known Notation(贪心)
阿尔萨斯
ZOJ
题目链接:zoj 3829 Known Notation
题目大意:给定一个不完整的后缀表达式,要求有2种不同操作,用尽量少的操作使得表达式完整。
解题思路:贪心,数字的个数要要保证比∗的个数多1,不够的话优先补在开头是最优的。然后遍历一遍字符串,碰到数字+1,碰到∗-1,保证数字的个数大于等1,如果不够减的话,可以和最后面的一个数字交换位置(用栈维护十分方便),因为添加和交换代价都是1