cf

Linux RPM 安装命令总结

拟墨画扇 提交于 2019-11-29 00:47:36
Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装。RPM 有五种操作模式,分别为:安装、卸载、升级、查询和验证。 1)用RPM安装软件包,最简单的命令如下: 1 #rpm -i example.rpm 安装 example.rpm 包; 2 #rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息; 3 #rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度 2)删除已安装的软件包 要卸载软件包example,只需输入以下这行命令: # rpm -e example 注意:软件包名是example,而不是rpm文件名"example.rpm"。 3)升级软件包 升级软件类似于安装软件: # rpm -Uvh example.rpm 用户要注意的是:rpm会自动卸载相应软件包的老版本。如果老版本软件的配置文件通新版本的不兼容,rpm会自动将其保存为另外一个文件,用户会看到下面的信息: saving /etc/example.conf as /etc/example.conf.rpmsave 这样用户就可以自己手工去更改相应的配置文件。 另外如果用户要安装老版本的软件,用户就会看到下面的出错信息: # rpm -Uvh

在RedisTemplate中使用scan代替keys指令

馋奶兔 提交于 2019-11-28 23:58:02
keys * 这个命令千万别在生产环境乱用。特别是数据庞大的情况下。因为Keys会引发Redis锁,并且增加Redis的CPU占用。很多公司的运维都是禁止了这个命令的 当需要扫描key,匹配出自己需要的key时,可以使用 scan 命令 scan 操作的Helper实现 import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.core.Cursor; import org.springframework.data.redis.core.ScanOptions; import org.springframework.data.redis.core.StringRedisTemplate; import

Liquid网络闪电支付使用指南

自闭症网瘾萝莉.ら 提交于 2019-11-28 22:35:02
本教程介绍如何使用Liquid侧链的c-lightning来创建闪电支付通道。使用这些支付通道,用户可以实时、私有地交易Liquid-BTC。 Liquid网络包含有对私密交易和资产发行的支持,因此用户可以使用闪电支付通道交易任何在Liquid网络上发行的资产,例如通证化的发币、加密资产等等。另外,对链上BTC和支付通道L-BTC的兑换的支持工作也在进行中。 使用Liquid网络上的c-lightning和比特币主网上流程一样,因此如果你熟悉哪些步骤的话,这个教程就会很容易 —— 虽然本来就是件容易的事。 1、软件安装 首先我们需要一个同步的比特币节点和一个同步的Elements节点,才能在Liquid侧链上开启闪电支付通道。你可以参考以下链接安装bitcoin节点软件和elements节点软件: bitcoin core: https://elementsproject.org/elements-code-tutorial/installing-bitcoin elements: https://elementsproject.org/elements-code-tutorial/installing-elements 一旦两个节点都完成同步,安装了必须的依赖: ~$ sudo apt-get install -y \ autoconf automake build

Docker容器实战(一) - 封神Server端技术

有些话、适合烂在心里 提交于 2019-11-28 20:52:13
容器!容器! 回溯历史源头 相比于盛极一时的 AWS OpenStack 以Cloud Foundry为代表的PaaS项目,却成了当时云计算技术中的一股清流 Cloud Foundry项目已经基本度过了最艰难的概念普及和用户教育阶段,开启了以开源PaaS为核心构建平台层服务能力的变革 只是,后来一个叫 Docker 的开源项目横空出世 当时还名叫 dotCloud 的 Docker 公司,也是PaaS热潮中的一员 相比于Heroku、Pivotal、Red Hat等PaaS新宠, dotCloud 微不足道,主打产品跟主流的Cloud Foundry社区脱节,门可罗雀! dotCloud 公司突然决定:开源自己的容器项目 Docker !!! 显然,这个决定在当时根本没人在乎。 “容器”这个概念从来就不是什么新鲜的东西,也不是Docker公司发明的。 即使在当时最热门的PaaS项目Cloud Foundry中,容器也只是其最底层、最没人关注的那一部分。 PaaS项目被大家接纳的一个主要原因是它提供“应用托管”能力 那时主流用户的普遍用法,就是租一批AWS或者OpenStack的虚拟机,然后像以前管理物理服务器那样,用脚本或者手工的方式在这些机器上部署应用。 当然,部署过程难免碰到云端虚拟机和本地环境不一致问题,当时的云计算服务,比的就是谁能更好模拟本地服务器环境,带来更好“上云

详细教程丨如何在Kubernetes上部署Redis集群

痴心易碎 提交于 2019-11-28 19:47:33
介 绍 Redis(REmote DIctionary Server的意思)是一个开源的内存数据存储,通常用作数据库、缓存以及消息代理。它可以存储和操作高级的数据结构类型,比如lists、maps、sets以及排序sets。Redis接受多种格式的键,因此可以在服务器上执行操作,减少客户端的工作负载。它将数据库完全地保存在内存中,只使用磁盘进行持久化存储。Redis是一种流行的数据存储解决方案,受到了Github、Pinterest、Snapchat、Twitter、StackOverflow、Flickr等科技巨头的青睐。 为什么要用Redis? 它非常快,它由ANSI C编写,可以在Linux、Mac OS X和Solaris等POSIX系统上运行。 Reis经常被评为最流行的键值数据库以及在容器上使用最流行的NoSQL数据库。 它的缓存解决方案减少了对云数据库后端的调用。 应用程序可以通过客户端API库访问它。 所有流行的编程语言都支持Redis。 它开源且非常稳定的。 Redis的应用案例 Facebook的一些在线游戏中,游戏分数更新频率非常高。当使用Redis排序set时,即使每分钟有数百万用户和数百万个新分数,执行这些操作都非常简单。 Twitter在Redis集群中存储了所有用户的时间线。 Pinterest将用户关注者图存储在Redis集群中

在RedisTemplate中使用scan代替keys指令

♀尐吖头ヾ 提交于 2019-11-27 07:18:44
keys * 这个命令千万别在生产环境乱用。特别是数据庞大的情况下。因为Keys会引发Redis锁,并且增加Redis的CPU占用。很多公司的运维都是禁止了这个命令的 当需要扫描key,匹配出自己需要的key时,可以使用 scan 命令 scan 操作的Helper实现 import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.core.Cursor; import org.springframework.data.redis.core.ScanOptions; import org.springframework.data.redis.core.StringRedisTemplate; import

nginx共享内存机制详解

亡梦爱人 提交于 2019-11-26 16:39:51
nginx的共享内存,是其能够实现高性能的主要原因之一,而其主要是用于对文件的缓存。本文首先会讲解共享内存的使用方式,然后会讲解nginx是如何实现共享内存的管理的。 1. 使用示例 nginx声明共享内存的指令为: proxy_cache_path /Users/Mike/nginx-cache levels=1:2 keys_zone=one:10m max_size=10g inactive=60m use_temp_path=off; 这里只是声明的一个名称为one,最大可用内存为10g的共享内存。这里面各个参数的含义如下: /Users/Mike/nginx-cache :这是一个路径参数,指定了将共享内存所缓存的文件的存储位置。这里为什么会生成文件的原因在于,对于上游服务发出的响应,是可以将其生成一个文件存储在nginx上的,后续如果有同样的请求,就可以直接读取该文件或者读取共享内存中的缓存以响应客户端; levels :在linux操作系统中,如果所有文件都放在一个文件夹中,那么当文件数量非常多的时候,可能一个磁盘驱动就无法读取这么多文件了,如果放置在多个文件夹中,那么就能够利用多个驱动并且读取的优点。这里的levels参数指定的就是如何生成文件夹。假设nginx为上游服务的某个响应数据生成的文件名为 e0bd86606797639426a92306b1b98ad9

线程同步之详解自旋锁

假如想象 提交于 2019-11-26 12:20:56
一 什么是自旋锁 自旋锁(Spinlock)是一种广泛运用的底层 同步 机制。自旋锁是一个 互斥 设备,它只有两个值:“锁定”和“解锁”。它通常实现为某个整数值中的某个位。希望获得某个特定锁得代码测试相关的位。如果锁可用,则“锁定”被设置,而代码继续进入 临界区 ;相反,如果锁被其他人获得,则代码进入 忙循环 (而不是休眠,这也是自旋锁和一般锁的区别)并重复检查这个锁,直到该锁可用为止,这就是自旋的过程。“测试并设置位”的操作必须是原子的,这样,即使多个线程在给定时间自旋,也只有一个线程可获得该锁。 自旋锁对于SMP和单处理器可抢占内核都适用。可以想象,当一个处理器处于自旋状态时,它做不了任何有用的工作,因此自旋锁对于单处理器不可抢占内核没有意义,实际上,非抢占式的单处理器系统上自旋锁被实现为空操作,不做任何事情。 曾经有个经典的例子来比喻自旋锁:A,B两个人合租一套房子,共用一个厕所,那么这个厕所就是共享资源,且在任一时刻最多只能有一个人在使用。当厕所闲置时,谁来了都可以使用,当A使用时,就会关上厕所门,而B也要使用,但是急啊,就得在门外焦急地等待,急得团团转,是为“自旋”,这也是要求锁的持有时间尽量短的原因! 自旋锁有以下特点: ___________________ 用于临界区互斥 在任何时刻最多只能有一个执行单元获得锁 要求持有锁的处理器所占用的时间尽可能短