Redis DeskTop Manage是redis的一款可视化管理工具,那么如何链接到虚拟机(centos7为例)的redis服务器呢?node
wget http://download.redis.io/releases/redis-6.0.8.tar.gz
linux
tar xzf redis-6.0.8.tar.gz
c++
cd redis-6.0.8
redis
gcc -v
,由于是用c++写的,因此make前须要安装gcc或者升级gccyum install gcc-c++
算法
make
安装后进入/usr/local/bin
目录查看,这里的config文件夹是我后面手动建立的mkdir config
,用来放置个人redis配置文件centos
redis.config
文件复制到咱们刚建立的安装后的目录下的config文件夹内cd /usr/local/bin/ cp /home/parallels/redis-6.0.8/redis.conf congig
## 在redis中,合法的"尺寸单位",无大小写区分. # 1k => 1000 bytes # 1kb => 1024 bytes # 1m => 1000000 bytes # 1mb => 1024*1024 bytes # 1g => 1000000000 bytes # 1gb => 1024*1024*1024 bytes ##将redis是否之后台进程的方式运行,默认为"no" **daemonize** no ##若是"daemonize yes",那么将会把进程id信息写入文件中.请注意:启动redis进程的用户须要具备写入此目录的权限. ##pidfile ~/redis.pid ##指令操做:./redis.server --daemonize yes --pidfile ~/redis.pid ## **pidfile** /var/run/redis.pid ##指定server须要侦听的客户端链接端口,client与server在此端口进行TCP通讯. **port** 6379 ##若是你的物理服务器有多个网络接口,请你为将server socket绑定在指定IP上. # **bind** 127.0.0.1 # 指定socket链接空闲时间(秒).若是connection空闲超时,将会关闭链接(TCP socket选项) ##若是为0,表示永不超时. **timeout** 0 ##指定TCP链接是否为长链接,"侦探"信号有server端维护,长链接将会额外的增长server端的开支(TCP socket选项) ##默认为0.表示禁用,非0值表示开启"长链接";"侦探"信号的发送间隔将有linux系统决定 ##在屡次"侦探"后,若是对等端(客户端socket)仍不回复,将会关闭链接,不然链接将会被保持开启. ##client端socket也能够经过配置keepalive选项,开启"长链接".(单位:秒) **tcp-keepaliv**e 0 ##server日志级别,合法值:debug,verbose,notice,warning 默认为notice ##debug适合开发环境,客户端操做信息都会输出日志 ##verbose输出一些相对有用的信息,目前效果不明 ##notice适合生产环境 ##warning异常信息 **loglevel** notice ##指定redis日志文件目录,默认为stdout ##logfile ~/redislog.log **logfile** stdout ##设定redis所容许的最大"db簇"的个数,默认为16个簇. ##客户端能够经过"select"指令指定须要使用的"db簇"索引号,默认为0. ##redis的顶层数据结构中,全部K-V都潜在的包括了"db簇"索引号,任何一个key都将隶属于一个"db". ##任何对数据的检索,只会覆盖指定的"db";例如数据被插入到"db 10"中,那么在"db 1"中去get,将会返回null. ##对数据归类到不一样的db簇中,能够帮助咱们实现一些特定的需求,好比根据不一样客户端链接,来指定不一样的db索引号. **databases** 16 ##snapshot配置,save <seconds> <changes>,用来描述"在多少秒期间至少多少个变动操做"触发snapshot ##snapshot最终将生成新的dump.rdb文件 ##save ""用来禁用snapshot功能 ##以下表示12小时内至少一个key变动,触发snapshot **save** 43200 1 ##若是snapshot过程当中出现错误,即数据持久化失败,是否终止全部的客户端write请求. ##这个选项很让人为难,"yes"表示终止,一旦snapshot故障,那么此server为只读服务; ##若是为"no",那么这次snapshot将失败,但下一次snapshot不会受到影响,不过若是出现故障,数据只能恢复到"最近一个成功点". **stop-writes-on-bgsave-error** yes ##是否启用rdb文件压缩手段,默认为yes. ##压缩可能须要额外的cpu开支,不过这可以有效的减少rdb文件的大小,有利于存储/备份/传输/数据恢复. **rdbcompression** yes ##是否对rdb文件使用CRC64校验和,默认为"yes",那么每一个rdb文件内容的末尾都会追加CRC校验和. ##对于其余第三方校验工具,能够很方便的检测文件的完整性 **rdbchecksum** yes ##指定rdb文件的名称 **dbfilename** dump.rdb ##指定rdb/AOF文件的目录位置 **dir** ./ # 将当前server作为slave,并为其指定master信息. # **slaveof** <masterip> <masterport> ##当前server的受权密码 ##任何客户端或者slave与此server交互前,须要提交密码,其余server的masterauth配置和此参数值保持一致 ##密码应该足够复杂(64字节) # **requirepass** <foobared> ## 以认证的方式链接到master.若是master中使用了"密码保护",slave必须交付正确的受权密码,才能链接成功 ## "requirepas"配置项指定了当前server的密码. ## 此配置项中<master-password>值须要和master机器的"requirepas"保持一致。此参数配置在slave端。 # **masterauth** <master-password> ##若是当前server是slave,那么当slave与master失去通信时,是否继续为客户端提供服务,"yes"表示继续,"no"表示终止. ##在"yes"状况下,slave继续向客户端提供只读服务,有可能此时的数据已通过期. ##在"no"状况下,任何向此server发送的数据请求服务(包括客户端和此server的slave)都将被告知"error" **slave-serve-stale-data** yes ##slave是否为"只读",强烈建议为"yes" **slave-read-only** yes ##slave向指定的master发送ping消息的时间间隔(秒),默认为10 # **repl-ping-slave-period** 10 ##slave与master通信中,最大空闲时间,默认60秒.超时将致使链接关闭. # **repl-timeout** 60 ##slave与master的链接,是否禁用TCP nodelay选项. ##"yes"表示禁用,那么socket通信中数据将会以packet方式发送(packet大小受到socket buffer限制), ## 能够提升socket通信的效率(tcp交互次数),可是小数据将会被buffer,不会被当即发送,对于接受者可能存在延迟. ##"no"表示开启tcp nodelay选项,任何数据都会被当即发送,及时性较好,可是效率较低 ##建议为"no" **repl-disable-tcp-nodelay** no ##适用Sentinel模块(unstable,M-S集群管理和监控),须要额外的配置文件支持 ##slave的权重值,默认100.当master失效后,Sentinel将会从slave列表中找到权重值最低(>0)的slave,并提高为master ##若是权重值为0,表示此slave为"观察者",不参与master选举 **slave-priority** 100 ##重命名指令,对于一些与"server"控制有关的指令,可能不但愿远程客户端(非管理员用户)连接随意使用, ##那么就能够把这些指令重命名为"难以阅读"的其余字符串. ##例如"slaveof" "CONFIG" "BGREWRITEAOF" "BGREWRITE" "FLUSHALL"等指令须要被限制访问 ##配置项格式: rename-command <command> <newCommand> # **rename-command** CONFIG 3ed984507a5dcd722aeade310065ce5d (方式:MD5('CONFIG^!')) ##所容许的客户端链接数,默认为10000. ##此值不可能被设置成过大,由于每一个socket链接都会以"文件描述符"的方式被系统打开,它受到系统"文件打开个数"的限制 ##若是超过此值,server将会拒绝链接. # **maxclients** 10000 ##redis-cache所能使用的最大内存(bytes),默认为0,表示"无限制",最终由OS物理内存大小决定(若是物理内存不足,有可能会使用swap) ##若是此值设置太小(好比32字节),将直接致使server没法使用. ##此值尽可能不要超过机器的物理内存尺寸,从性能和实施的角度考虑,能够为物理内存3/4. ##此配置须要和"maxmemory-policy"配合使用,当redis中内存数据达到maxmemory时,触发"清除策略". ##若是使用"清除策略"后,仍没法获得足够的内存来存储新的数据,那么write操做的客户端将会收到"error OOM.."信息,此时server只读. ##在"内存不足"时,任何write操做(好比set,lpush等)都会触发"清除策略"的执行. ##在实际环境中,建议redis的全部物理机器的硬件配置保持一致(内存一致),同时确保master/slave中"maxmemory""policy"配置一致 # **maxmemory** <bytes> ##"内存不足"时,数据清除策略,默认为"volatile-lru" ## _volatile-lru_ ->对"过时集合"中的数据采起LRU(近期最少使用)算法.若是对key使用"expire"指令指定了过时时间,那么此key将会被添加到"过时集合"中. ##每一个Redis对象,都保留一个“最后访问时间”的属性,能够用来判断此对象空闲的时间,那么LRU算法就能够根据此属性来进行判断。 ## 将已通过期/LRU的数据优先移除.若是"过时集合"中所有移除仍不能知足内存需求,将OOM. ## _allkeys-lru_ ->对全部的数据,采用LRU算法 ## _volatile-random_ ->对"过时集合"中的数据采起"随即选取"算法,并移除选中的K-V,直到"内存足够"为止. ## 若是若是"过时集合"中所有移除所有移除仍不能知足,将OOM ## _allkeys-random_ ->对全部的数据,采起"随即选取"算法,并移除选中的K-V,直到"内存足够"为止. ## _volatile-ttl_ ->对"过时集合"中的数据采起TTL算法(最小存活时间),移除即将过时的数据. ## _noeviction_ ->不作任何干扰操做,直接返回OOM异常. ### ##若是数据的过时不会对"应用系统"带来异常,且系统中write操做比较密集,建议采起"_**allkeys-lru**_" # **maxmemory-policy** volatile-lru ##是否开启aof功能,"yes"表示开启,在开启状况下,aof文件同步功能才生效,默认为"no" ##对master机器,建议使用AOF,对于slave,建议关闭(采用snapshot), **appendonly** no ##aof中文件同步机制 ## _always_ ->任何一个aof记录都当即进行文件同步(磁盘写入),安全性最高;若是write请求比较密集,将会形成较高的磁盘IO开支和响应延迟 ## _everysec_ ->每秒同步一次,性能和安全性都较高的策略,也是默认值 ## _no_ ->不直接同步,让文件同步交给OS控制,OS将会根据文件流通道中buffer状况/空闲状况进行择机写入磁盘.安全性和效率与OS设定有关. **appendfsync** everysec ##在aof rewrite期间,是否对aof新记录的append暂缓使用文件同步策略,主要考虑磁盘IO开支和请求阻塞时间. ##默认为no,表示"不暂缓",新的aof记录仍然会被当即同步 ## **no-appendfsync-on-rewrite** no ##aof rewrite触发时机,最小文件尺寸 **auto-aof-rewrite-min-size** 64mb ##aof每次rewrite以后,都会记住当前aof文件的大小,当文件增加到必定比例后,继续进行aof rewrite **auto-aof-rewrite-percentage** 100 ##aof rewrite过程当中,是否采起增量"文件同步"策略,默认为"yes",并且必须为yes. ##rewrite过程当中,每32M数据进行一次文件同步,这样能够减小"aof大文件"写入对磁盘的操做次数. **aof-rewrite-incremental-fsync** yes ##lua脚本运行的最大时间 **lua-time-limit** 5000 ##"慢操做日志"记录,单位:微秒(百万分之一秒,1000 * 1000),若是操做时间超过此值,将会把command信息"记录"起来.(内存,非文件) ##其中"操做时间"不包括网络IO开支,只包括请求达到server后进行"内存实施"的时间."0"表示记录所有操做. **slowlog-log-slower-than** 10000 ##"慢操做日志"保留的最大条数,"记录"将会被队列化,若是超过了此长度,旧记录将会被移除. ##能够经过"SLOWLOG <subcommand> args"查看慢记录的信息(SLOWLOG get 10,SLOWLOG reset) ##经过"SLOWLOG get num"指令能够查看最近num条慢速记录,其中包括"记录"操做的时间/指令/K-V等信息 **slowlog-max-len** 128 ##经过"TYPE key"指令查看key的数据类型 ##经过"OBJECT encoding key"查看key的编码类型 ##hash类型的数据结构在编码上可使用ziplist和hashtable ##ziplist的特色就是文件存储(以及内存存储)所需的空间较小,在内容较小时,性能和hashtable几乎同样.所以redis对hash类型默认采起ziplist. ##若是hash中条目的条目个数或者value长度达到阀值,将会被重构为hashtable. ##ziplist中容许存储的最大条目个数,建议为128 **hash-max-ziplist-entries** 512 ##ziplist中容许条目value值最大字节数,建议为1024 **hash-max-ziplist-value** 64 ##对于list类型,将会采起ziplist,linkedlist两种编码类型. ##同hash. **list-max-ziplist-entries** 512 **list-max-ziplist-value** 64 ##zset为有序集合,有2中编码类型:ziplist,skiplist ##由于"排序"将会消耗额外的性能,当zset中数据较多时,将会被重构为skiplist. ##同hash. **zset-max-ziplist-entries** 128 **zset-max-ziplist-value** 64 ##intset中容许保存的最大条目个数,若是达到阀值,intset将会被重构为hashtable **set-max-intset-entries** 512 ##是否开启顶层数据结构的rehash功能,若是内存容许,请开启. ##rehash可以很大程度上提升K-V存取的效率. **activerehashing** yes ##客户端buffer控制 ##在客户端与server进行的交互中,每一个链接都会与一个buffer关联,此buffer用来队列化亟待被client接受的响应信息. ##若是client不能及时的消费响应信息,那么buffer将会被不断积压而给server带来内存压力.若是buffer中积压的数据达到阀值,将会 ##致使链接被关闭,buffer被移除." ##buffer控制类型包括: ## _normal_ -> 普通链接 ## _slave_ ->与slave之间的链接 ## _pubsub_ ->pub/sub类型链接,此类型的链接,每每会产生此种问题;由于pub端会密集的发布消息,可是sub端可能消费不足. ##指令格式:client-output-buffer-limit <class> <hard> <soft> <seconds>",其中hard表示buffer最大值,一旦达到阀值将当即关闭链接; ##soft表示"容忍值",它和seconds配合,若是buffer值超过soft且持续时间达到了seconds,也将当即关闭链接,若是超过了soft可是在seconds以后 ##buffer数据小于了soft,链接将会被保留. # 其中hard和soft都设置为0,则表示禁用buffer控制.一般hard值大于soft. **client-output-buffer-limit** normal 0 0 0 **client-output-buffer-limit** slave 256mb 64mb 60 **client-output-buffer-limit** pubsub 32mb 8mb 60 ##Redis server执行后台任务的频率,默认为10,此值越大表示redis对"间歇性task"的执行次数越频繁(次数/秒) ##"间歇性task"包括"过时集合"检测、关闭"空闲超时"的链接等,此值必须大于0且小于500.(参见redis.h源码) ##此值太小就意味着更多的cpu周期消耗,后台task被轮询的次数更频繁 ##此值过大意味着"内存敏感"性较差. ##建议保持默认值 **hz** 10 ##include指令用来载入额外的配置文件模板,也能够在redis server启动时,手动指定须要include的配置文件. # **include** /path/to/local.conf # include /path/to/other.conf
cd /usr/local/bin
安全
我这里在配置文件中配置过了密码,因此须要auth 密码认证
1)修改protected-mode yes 改成:protected-mode no
2)注释掉#bin 127.0.0.1
3)将 daemonize no 改为 yes
4)设置密码 requirepass 123456bash
能够查看个人上一篇博客服务器
ifconfig