超人学院

redis配置文件参数说明

拟墨画扇 提交于 2021-01-10 10:03:52
配置文件参数说明 : 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonizeno 2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile/var/run/redis.pid 3. 指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女AlessiaMerz的名字 port6379 4. 绑定的主机地址 bind127.0.0.1 5.当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能 timeout300 6. 指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose loglevelverbose 7. 日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null logfile stdout 8. 设置数据库的数量,默认数据库为0,可以使用SELECT<dbid>命令在连接上指定数据库id databases16 9. 指定在多长时间内,有多少次更新操作

双十二超人学院送福利

六眼飞鱼酱① 提交于 2021-01-04 08:04:21
双十二福利来了,活动时间:12月9日-12月12日零点结束,活动内容:超人学院大数据就业班及面授精英班,报名即可在原有优惠的基础上,再优惠1000元,详情请查看 http://www.crxy.cn 来源: oschina 链接: https://my.oschina.net/u/2273204/blog/541500

CDH使用之CDH 5.3.x安装

混江龙づ霸主 提交于 2020-04-07 11:08:27
前言:CDH是由Cloudera公司发行的Hadoop版本,全称(Cloudera's Distribution Including Apache Hadoop)。该版本基于原生Apache Hadoop版本进行改进,添加了补丁和自行开发的组件,更加稳定易用。并且Cloudera公司已将CDH开源,可以不依靠CM也可以进行独立安装,目前来看在国内市场占有比重较大。本文采用CM方式进行安装,安装环境为CentOS6.5,暂不介绍独立安装方式安装。 安装准备 介质准备 本文采用parcel包方式安装,需要下载相关的3个文件。 parcel包地址: http://archive-primary.cloudera.com/cdh5/parcels/5.3.2/ 需要下载如下三个文件 如果采用rpm方式安装,地址为: http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.3.2/ 系统配置 a) 用户创建 CDH安装建议使用普通用户进行安装,使用root用户安装也可以,安装完成之后如果有其他新普通用户需要使用时,添加到对应的hadoop用户组(默认组为supergroup)即可。 创建用户 # useradd <用户名称> 修改密码 # passwd <用户名称> b) host配置 安装CDH集群之前,必须配置hosts

redis学习笔记之pipeline

不打扰是莪最后的温柔 提交于 2020-04-06 22:35:09
redis是一个cs模式的tcp server,使用和http类似的请求响应协议。一个client可以通过一个socket连接发起多个请求命令。每个请求命令发出后client通常 会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果通过响应报文返回给client。基本的通信过程如下 Client: INCR X Server: 1 Client: INCR X Server: 2 Client: INCR X Server: 3 Client: INCR X Server: 4 基 本上四个命令需要8个tcp报文才能完成。由于通信会有网络延迟,假如从client和server之间的包传输时间需要0.125秒。那么上面的四个命 令8个报文至少会需要1秒才能完成。这样即使redis每秒能处理100个命令,而我们的client也只能一秒钟发出四个命令。这显示没有充分利用 redis的处理能力。除了可以利用mget,mset 之类的单条命令处理多个key的命令外 我们还可以利用pipeline的方式从client打包多条命令一起发出,不需要等待单条命令的响应返回,而redis服务端会处理完多条命令后会将多条命令的处理结果打包到一起返回给客户端。通信过程如下 Client: INCR X Client: INCR X Client: INCR X Client: INCR X

Redis 命令参考——PubSub(发布订阅)

﹥>﹥吖頭↗ 提交于 2020-03-13 09:59:25
PubSub( 发布订阅 ) PUBLISH PUBLISH channel message 将信息 message 发送到指定的频道 channel 。 可用版本: >=2.0.0 时间复杂度: O(N+M) ,其中 N 是频道 channel 的订阅者数量,而 M 则是使用模式订阅(subscribed patterns)的客户端的数量。 返回值: 接收到信息 message 的订阅者数量。 # 对没有订阅者的频道发送信息 redis>publish bad_channel "can any body hear me?" (integer)0 # 向有一个订阅者的频道发送信息 redis>publish msg "good morning" (integer)1 # 向有多个订阅者的频道发送信息 redis>publish chat_room "hello~ everyone" (integer)3 SUBSCRIBE SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道的信息。 可用版本: >= 2.0.0 时间复杂度: O(N),其中 N 是订阅的频道的数量。 返回值: 接收到的信息(请参见下面的代码说明)。 # 订阅 msg 和 chat_room 两个频道# 1 - 6 行是执行 subscribe 之后的反馈信息# 第 7 - 9

Java调用redis--字符串类型接口说明

断了今生、忘了曾经 提交于 2020-03-02 08:47:09
字符串数据类型( String )接口说明 字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如 JPEG 图像数据或 Json 对象描述信息等。在 Redis 中字符串类型的 Value 最多可以容纳的数据长度是 512M 。 #设定该 Key 持有指定的字符串 Value ,如果该 Key 已经存在,则覆盖其原有值。 void set(final String key, final String value) #获取指定 Key 的 Value ,如果该 Key 不存在,返回 null 。 byte[] get(final String key) #判断该键是否存在,存在返回 1 ,否则返回 0 boolean exists(final String key) //删除指定的 Key long delete(final String... keys) //重命名指定的 Key, 如果参数中的两个 Keys 的命令相同,或者是源 Key 不存在,该命令都会返回相关的错误信息。如果 newKey 已经存在,则直接覆盖。 void rename(final String oldkey, final String newkey) //如果新值不存在,则将参数中的原值修改为新值。其它条件和 RENAME 一致。

Redis学习手册(Set数据类型)

放肆的年华 提交于 2020-02-28 20:53:10
一、概述: 在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作。Set可包含的最大元素数量是4294967295。和List类型不同的是, Set 集合中不允许出现重复的元素 ,这一点和C++标准库中的set容器是完全相同的。换句话说,如果多次添加相同元素,Set 中将仅保留该元素的一份拷贝。和List类型相比,Set类型在功能上还存在着一个非常重要的特性,即在服务器端完成多个Sets之间的聚合计算操作,如 unions、intersections和differences。由于这些操作均在服务端完成,因此效率极高,而且也节省了大量的网络IO开销。 二、相关命令列表: 命令原型 时间复杂度 命令描述 返回值 SADD key member [member ...] O(N) 时间复杂度中的N表示操作的成员数量。如果在插入的过程用,参数中有的成员在 Set中已经存在,该成员将被忽略,而其它成员仍将会被正常插入。如果执行该命令之前,该Key并不存在,该命令将会创建一个新的Set,此后再将参数中 的成员陆续插入。如果该Key的Value不是Set类型,该命令将返回相关的错误信息。 本次操作实际插入的成员数量。 SCARD

Scala语言规范----Array类

Deadly 提交于 2019-12-17 12:04:13
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Array类 通用数组类定义如下。 final class Array[A](len: Int) extends Seq[A] { def length: Int = len def apply(i: Int): A = ... def update(i: Int, x: A): Unit = ... def elements: Iterator[A] = ... def subArray(from: Int, end: Int): Array[A] = ... def filter(p: A => Boolean): Array[A] = ... def map[B](f: A => B): Array[B] = ... def flatMap[B](f: A => Array[B]): Array[B] = ... } 如果T不是类型参数或抽象类型,类型Array[T]表示宿主系统中的原生数组类型[]T。这种情况下length返回数组的长度,apply表示下标,update表示元素更新。由于apply和update操作(§6.25)的语法糖的存在,以下是Scala和Java/C#中对数组xs操作的对应: Scala Java/C# xs.length xs.length xs(i) xs[i] xs(i)

Hadoop源码分析----RPC反射机制

佐手、 提交于 2019-12-09 15:20:33
有了Client 和Server,很自然就能RPC 啦。下面轮到RPC.java 啦。 一般来说,分布式对象一般都会要求根据接口生成存根和框架。如CORBA,可以通过IDL,生成存根和框架。但是,在 org.apache.hadoop.rpc,我们就不需要这样的步骤了。上类图。 为了分析Invoker,我们需要介绍一些Java 反射实现Dynamic Proxy 的背景。 Dynamic Proxy 是由两个class 实现的:java.lang.reflect.Proxy 和java.lang.reflect.InvocationHandler,后者是一个 接口。所谓Dynamic Proxy 是这样一种class:它是在运行时生成的class,在生成它时你必须提供一组interface 给它,然后 该class 就宣称它实现了这些interface。 这个Dynamic Proxy 其实就是一个典型的Proxy 模式,它不会替你作实质性的工作,在生成它的实例时你必须提供一个handler, 由它接管实际的工作。这个handler,在Hadoop 的RPC 中,就是Invoker 对象。 我们可以简单地理解:就是你可以通过一个接口来生成一个类,这个类上的所有方法调用,都会传递到你生成类时传递的 InvocationHandler 实现中。 在Hadoop 的RPC 中