vagrant系列教程(四):vagrant搭建redis与redis的监控程序redis-stat(转)

上一篇php7环境的搭建 真是火爆,仅仅两天时间,就破了我之前swagger系列的一片文章,看来,大家对搭建环境真是情有独钟。 
为了访问量,我今天再来一篇Redis的搭建。当然不能仅仅是redis的搭建。否则,多不上档次呀,这种文章一抓一大把。这次还顺带把redis监控程序的搭建给弄上了。很高大上的额!

redis的安装

哎,写到这儿,说一句,诅咒联通这网络,联通网络一上,打开vpn,照样不能访问外网,联baidu都一卡一卡的。

redis就不用yum来进行安装了。直接从官方下载来安装吧。(老实说,我也不知道yum里边有没有redis的最新版)

回到顶部

下载redis

$ wget -c http://download.redis.io/releases/redis-3.0.7.tar.gz

当然你也可以到redis官网 下载最新的版本。当然个人建议,开发中还是使用稳定版本吧! 
这里写图片描述

回到顶部

解压redis

$ tar -zxvf redis-3.0.7.tar.gz

这个命令什么意思,我就不多说了,如果不清楚的同学,建议平时还是多积累点Linux的命令知识额。加薪升职的利器额。 
这里写图片描述

回到顶部

编译安装redis

$ cd redis-3.0.7
$ make && make install

进入到解压后的目录,然后执行编译,然后安装。

这里写图片描述

OK,至此,我们的redis安装还没有完额,其实好玩儿的才刚刚开始呢。

回到顶部

配置redis

创建redis 配置文件夹。

$ mkdir /etc/redis

在/var/lib/redis 下创建有效的保存数据的目录

$ mkdir -p /var/lib/redis/6379

redis.conf 是 redis 的配置文件,然而你会看到我们会把这个文件的名字改为 6379.conf ,而这个数字就是 redis 监听的网络端口。如果你想要运行超过一个的 redis 实例,推荐用这样的名字。

复制示例的 redis.conf 到 /etc/redis/6379.conf。

$ cp redis.conf /etc/redis/6379.conf

修改的内容如下:

设置 daemonize 为 no,systemd 需要它运行在前台,否则 redis 会突然挂掉。 
daemonize yes

设置 pidfile 为 /var/run/redis_6379.pid。 
pidfile /var/run/redis_6379.pid

如果不准备用默认端口,可以修改。 
port 6379

设置日志级别。 
loglevel debug

修改日志文件路径。 
logfile /var/log/redis_6379.log

设置目录为 /var/lib/redis/6379 
dir /var/lib/redis/6379

redis配置文件,各项的详解

复制代码
######################### 通用 ########################## 启动后台进程
daemonize yes# 后台进程的pid文件存储位置
pidfile /var/run/redis.pid# 默认监听端口
port 6379# 在高并发的环境中,为避免慢客户端的连接问题,需要设置一个高速后台日志
tcp-backlog 511# 只接受以下绑定的IP请求
# Examples:
# bind 192.168.1.100 10.0.0.1
bind 127.0.0.1# 设置unix监听,默认为空
# unixsocket /tmp/redis.sock
# unixsocketperm 700#客户端空闲多长时间,关闭链接,0表示不关闭
timeout 0# TCP keepalive.
# 如果是非零值,当失去链接时,会使用SO_KEEPALIVE发送TCP ACKs 到客户端。
# 这个参数有两个作用:
# 1.检测断点。
# 2.从网络中间设备来看,就是保持链接
# 在Linux上,设定的时间就是发送ACKs的周期。
# 注意:达到双倍的设定时间才会关闭链接。在其他内核上,周期依赖于内核设置。
# 一个比较合理的值为60s
tcp-keepalive 0# 指定日志级别,以下记录信息依次递减
# debug用于开发/测试
# verbose没debug那么详细
# notice适用于生产线
# warning只记录非常重要的信息
loglevel notice#日志文件名称,如果为stdout则输出到标准输出端,如果是以后台进程运行则不产生日志
logfile ""# 要想启用系统日志记录器,设置一下选项为yes
# syslog-enabled no# 指明syslog身份
# syslog-ident redis# 指明syslog设备。必须是一个用户或者是local0 ~ local7之一
# syslog-facility local0#设置数据库数目,第一个数据库编号为:0
databases 16######################### 快照 ########################## 在什么条件下保存数据库到磁盘,条件可以有很多个,满足任何一个条件都会进行快照存储
# 在900秒之内有一次key的变化
save 900 1
# 在300秒之内,有10个key的变化
save 300 10
# 在60秒之内有10000个key变化
save 60 10000# 当持久化失败的时候,是否继续提供服务
stop-writes-on-bgsave-error yes# 当写入磁盘时,是否使用LZF算法压缩数据,默认为yes
rdbcompression yes# 是否添加CRC64校验到每个文件末尾--花费时间保证安全
rdbchecksum yes# 磁盘上数据库的保存名称
dbfilename dump.rdb# Redis工作目录,以上数据库保存文件和AOF日志都会写入此目录
dir ./######################### 主从同步 ########################## 主从复制,当本机是slave时配置
# slaveof <masterip> <masterport># 当主机需要密码验证时候配置
# masterauth <master-password># 当slave和master丢失链接,或正处于同步过程中。是否响应客户端请求
# 设置为yes表示响应
# 设置为no,直接返回"SYNC with master in progress"(正在和主服务器同步中)
slave-serve-stale-data yes# 设置slave是否为只读。
# 注意:即使slave设置为只读,也不能令其暴露在不受信任的网络环境中
slave-read-only yes# 无硬盘复制功能
repl-diskless-sync no# 等待多个slave一起来请求之间的间隔时间
repl-diskless-sync-delay 5# 设置slave给master发送ping的时间间隔
# repl-ping-slave-period 10# 设置数据传输I/O,主机数据、ping响应超时时间,默认60s
# 这个时间一定要比repl-ping-slave-period大,否则会不断检测到超时
# repl-timeout 60# 是否在SYNC后slave socket上禁用TCP_NODELAY?
# 如果你设置为yes,Redis会使用少量TCP报文和少量带宽发送数据给slave。
# 但是这样会在slave端出现延迟。如果使用Linux内核的默认设置,大概40毫秒。
# 如果你设置为no,那么在slave端研究就会减少但是同步带宽要增加。
# 默认我们是为低延迟优化的。
# 但是如果流量特别大或者主从服务器相距比较远,设置为yes比较合理。
repl-disable-tcp-nodelay no# 设置复制的后台日志大小。
# 复制的后台日志越大, slave 断开连接及后来可能执行部分复制花的时间就越长。
# 后台日志在至少有一个 slave 连接时,仅仅分配一次。
# repl-backlog-size 1mb# 在 master 不再连接 slave 后,后台日志将被释放。下面的配置定义从最后一个 slave 断开连接后需要释放的时间(秒)。
# 0 意味着从不释放后台日志
# repl-backlog-ttl 3600# 设置slave优先级,默认为100
# 当主服务器不能正确工作的时候,数字低的首先被提升为主服务器,但是0是禁用选择
slave-priority 100# 如果少于 N 个 slave 连接,且延迟时间 <=M 秒,则 master 可配置停止接受写操作。
# 例如需要至少 3 个 slave 连接,且延迟 <=10 秒的配置:
# min-slaves-to-write 3
# min-slaves-max-lag 10
# 设置 0 为禁用
# 默认 min-slaves-to-write 为 0 (禁用), min-slaves-max-lag 为 10######################### 安全 ########################## 设置客户端连接密码,因为Redis响应速度可以达到每秒100w次,所以密码要特别复杂
# requirepass 1413# 命令重新命名,或者禁用。
# 重命名命令为空字符串可以禁用一些危险命令比如:FLUSHALL删除所有数据
# 需要注意的是,写入AOF文件或传送给slave的命令别名也许会引起一些问题
# rename-command CONFIG ""# 设置客户端连接密码,因为Redis响应速度可以达到每秒100w次,所以密码要特别复杂
requirepass 1413# 命令重新命名,或者禁用。
# 重命名命令为空字符串可以禁用一些危险命令比如:FLUSHALL删除所有数据
# 需要注意的是,写入AOF文件或传送给slave的命令别名也许会引起一些问题
# rename-command CONFIG ""######################### 限制 ########################## 设置最多链接客户端数量,默认为10000。
# 实际可以接受的请求数目为设置值减去32,这32是Redis为内部文件描述符保留的
# maxclients 10000# 设置最多链接客户端数量,默认为10000。
# 实际可以接受的请求数目为设置值减去32,这32是Redis为内部文件描述符保留的
# maxclients 10000
# 设置最大使用内存数量,在把Redis当作LRU缓存时特别有用。
# 设置的值要比系统能使用的值要小
# 因为当启用删除算法时,slave输出缓存也要占用内存
# maxmemory <bytes>#达到最大内存限制时,使用何种删除算法
# volatile-lru  使用LRU算法移除带有过期标致的key
# allkeys-lru -> 使用LRU算法移除任何key
# volatile-random -> 随机移除一个带有过期标致的key
# allkeys-random ->  随机移除一个key
# volatile-ttl -> 移除最近要过期的key
# noeviction -> 不删除key,当有写请求时,返回错误
#默认设置为volatile-lru
# maxmemory-policy noeviction# LRU和最小TTL算法没有精确的实现
# 为了节省内存只在一个样本范围内选择一个最近最少使用的key,可以设置这个样本大小
# maxmemory-samples 5######################### AO模式 ########################## AOF和RDB持久化可以同时启用
# Redis启动时候会读取AOF文件,AOF文件有更好的持久化保证
appendonly no# AOF的保存名称,默认为appendonly.aof
appendfilename "appendonly.aof"# 设置何时写入追加日志,又三种模式
# no:表示由操作系统决定何时写入。性能最好,但可靠性最低
# everysec:表示每秒执行一次写入。折中方案,推荐
# always:表示每次都写入磁盘。性能最差,比上面的安全一些
# appendfsync always
appendfsync everysec
# appendfsync no# 当AOF同步策略设定为alway或everysec
# 当后台存储进程(后台存储或者AOF日志后台写入)会产生很多磁盘开销
# 某些Linux配置会使Redis因为fsync()调用产生阻塞很久
# 现在还没有修复补丁,甚至使用不同线程进行fsync都会阻塞我们的同步write(2)调用。
# 为了缓解这个问题,使用以下选项在一个BGSAVE或BGREWRITEAOF运行的时候
# 可以阻止fsync()在主程序中被调用,
no-appendfsync-on-rewrite no# AOF自动重写(合并命令,减少日志大小)
# 当AOF日志大小增加到一个特定比率,Redis调用BGREWRITEAOF自动重写日志文件
# 原理:Redis 会记录上次重写后AOF文件的文件大小。
# 如果刚启动,则记录启动时AOF大小
# 这个基本大小会用来和当前大小比较。如果当前大小比特定比率大,就会触发重写。
# 你也需要指定一个AOF需要被重写的最小值,这样会避免达到了比率。
# 但是AOF文件还很小的情况下重写AOF文件。
# 设置为0禁用自动重写
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb#redis在启动时可以加载被截断的AOF文件,而不需要先执行 redis-check-aof 工具
aof-load-truncated yes######################### LUA脚本 ########################## Lua脚本的最大执行时间,单位毫秒
# 超时后会报错,并且计入日志
# 当一个脚本运行时间超过了最大执行时间
# 只有SCRIPT KILL和 SHUTDOWN NOSAVE两个命令可以使用。
# SCRIPT KILL用于停止没有调用写命令的脚本。
# SHUTDOWN NOSAVE是唯一的一个,在脚本的写命令正在执行
# 用户又不想等待脚本的正常结束的情况下,关闭服务器的方法。
# 以下选项设置为0或负数就会取消脚本执行时间限制
lua-time-limit 5000####################### redis集群  ######################### 是否启用集群
# cluster-enabled yes# 集群配置文件
# 集群配置变更后会自动写入改文件
# cluster-config-file nodes-6379.conf# 节点互连超时的阀值 
# 节点超时时间,超过该时间无法连接主要Master节点后,会停止接受查询服务 
# cluster-node-timeout 15000# 控制从节点FailOver相关的设置,设为0,从节点会一直尝试启动FailOver.
# 设为正数,失联大于一定时间(factor*节点TimeOut),不再进行FailOver
# cluster-slave-validity-factor 10# 最小从节点连接数
# cluster-migration-barrier 1# 默认为Yes,丢失一定比例Key后(可能Node无法连接或者挂掉),集群停止接受写操作
# 设置为No,集群丢失Key的情况下仍提供查询服务
# cluster-require-full-coverage yes######################### 慢查询 ########################## Redis慢查询日志记录超过设定时间的查询,且只记录执行命令的时间
# 不记录I/O操作,比如:和客户端交互,发送回复等。
# 时间单位为微妙,1000000微妙 = 1 秒
# 设置为负数会禁用慢查询日志,设置为0会记录所有查询命令
slowlog-log-slower-than 10000# 日志长度没有限制,但是会消耗内存。超过日志长度后,最旧的记录会被移除
# 使用SLOWLOG RESET命令可以回收内存
slowlog-max-len 128######################### 延迟监测 ########################## 系统只记录超过设定值的操作,单位是毫秒,0表示禁用该功能  
# 可以通过命令“CONFIG SET latency-monitor-threshold <milliseconds>” 直接设置而不需要重启redis  
latency-monitor-threshold 0######################### 事件通知 #########################
#  当事件发生时, Redis 可以通知 Pub/Sub 客户端。
#  可以在下表中选择 Redis 要通知的事件类型。事件类型由单个字符来标识:
# K     Keyspace 事件,以 _keyspace@<db>_ 的前缀方式发布
# E     Keyevent 事件,以 _keysevent@<db>_ 的前缀方式发布
# g     通用事件(不指定类型),像 DEL, EXPIRE, RENAME, …
# $     String 命令
# s     Set 命令
# h     Hash 命令
# z     有序集合命令
# x     过期事件(每次 key 过期时生成)
# e     清除事件(当 key 在内存被清除时生成)
# A     g$lshzxe 的别称,因此 ”AKE” 意味着所有的事件
# notify-keyspace-events 带一个由 0 到多个字符组成的字符串参数。空字符串意思是通知被禁用。
#  例子:启用 list 和通用事件:
# notify-keyspace-events Elg
#  默认所用的通知被禁用,因为用户通常不需要改特性,并且该特性会有性能损耗。
#  注意如果你不指定至少 K 或 E 之一,不会发送任何事件。
notify-keyspace-events ""
#notify-keyspace-events AKE######################### 高级设置 ########################## 当有少量条目的时候,哈希使用高效内存数据结构。最大的条目也不能超过设定的阈值。# “少量”定义如下:
hash-max-ziplist-entries 512
hash-max-ziplist-value 64# 和哈希编码一样,少量列表也以特殊方式编码节省内存。“少量”设定如下:
list-max-ziplist-entries 512
list-max-ziplist-value 64# 集合只在以下情况下使用特殊编码来节省内存
# -->集合全部由64位带符号10进制整数构成的字符串组成
# 下面的选项设置这个特殊集合的大小。
set-max-intset-entries 512# 当有序集合的长度和元素设定为以下数字时,又特殊编码节省内存
zset-max-ziplist-entries 128
zset-max-ziplist-value 64# HyperLogLog 稀疏表示字节限制
# 这个限制包含了16个字节的头部,当一个HyperLogLog使用sparse representation
# 超过了这个显示,它就会转换到dense representation上
hll-sparse-max-bytes 3000# 哈希刷新使用每100个CPU毫秒中的1毫秒来帮助刷新主哈希表(顶级键值映射表)。
#  Redis哈希表使用延迟刷新机制,越多操作,越多刷新。
# 如果服务器空闲,刷新操作就不会进行,更多内存会被哈希表占用
# 默认每秒进行10次主字典刷新,释放内存。
# 如果你有硬性延迟需求,偶尔2毫秒的延迟无法忍受的话。设置为no
# 否则设置为yes
activerehashing yes# 客户端输出缓存限制强迫断开读取速度比较慢的客户端
# 有三种类型的限制
# normal -> 正常
# slave  -> slave和 MONITOR
# pubsub -> 客户端至少订阅了一个频道或者模式
# 客户端输出缓存限制语法如下(时间单位:秒)
# client-output-buffer-limit <类别> <强制限制> <软性限制> <软性时间>
# 达到强制限制缓存大小,立刻断开链接。
# 达到软性限制,仍然会有软性时间大小的链接时间
# 默认正常客户端无限制,只有请求后,异步客户端数据请求速度快于它能读取数据的速度
# 订阅模式和主从客户端又默认限制,因为它们都接受推送。
# 强制限制和软性限制都可以设置为0来禁用这个特性
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后台任务执行频率,比如清除过期键任务。
# 设置范围为1到500,默认为10.越大CPU消耗越大,延迟越小。
# 建议不要超过100
hz 10# 当子进程重写AOF文件,以下选项开启时,AOF文件会每产生32M数据同步一次。
# 这有助于更快写入文件到磁盘避免延迟
aof-rewrite-incremental-fsync yes
复制代码
回到顶部

redis开机自启动

复制redis的自启动脚本到init.d中

$ cp utils/redis_init_script /etc/init.d/redis_6379

这里说明一下哈,镜像还是前面用的CentOs7,所以有的命令稍微跟6不一样。建立一个redis的服务

$ vim /etc/systemd/system/redis_6379.service

然后输入下面的内容

复制代码
[Unit]
Description=Redis on port 6379
[Service]
Type=forking
ExecStart=/etc/init.d/redis_6379 start
ExecStop=/etc/init.d/redis_6379 stop
[Install]
WantedBy=multi-user.target
复制代码

注意上面文件的目录,就是刚刚复制的目录,如果有多个redis,这里需要注意。

回到顶部

系统参数的调整

为了让redis正常运行,需要对某些系统参数进行调整。

复制代码
# 避免数据被截断
$ sysctl -w vm.overcommit_memory=1# 修改 backlog 连接数的最大值超过 redis.conf 中的 tcp-backlog 值,即默认值511
$ sysctl -w net.core.somaxconn=512# 取消对透明巨页内存(transparent huge pages)的支持,因为这会造成 redis 使用过程产生延时和内存访问问题。
$ echo never > /sys/kernel/mm/transparent_hugepage/enabled
复制代码

然后将以上配置,写入相关文件:

$ vim /etc/sysctl.conf

输入内容如下:

vm.overcommit_memory = 1
net.core.somaxconn=512

对于透明巨页内存支持,并没有直接 sysctl 命令可以控制,所以需要将下面的命令放到 /etc/rc.local 的结尾。

echo never > /sys/kernel/mm/transparent_hugepage/enabled

通过以上配置,可以来启动redis服务了。

$ systemctl start redis_6379
# 设置为开机启动
$ systemctl enable redis_6379
# 通过以下命令,查看redis的状态
$ systemctl status redis_6379

 

这里写图片描述

然后使用客户端来进行测试一下redis服务是否正常,参见截图: 
这里写图片描述

redis的监控redis-stat的安装

由于redis-stat是使用ruby开发的,在安装前,请确保你的环境已经有了ruby的环境,如果没有,请自行google、百度安装之,我就不写了哦。 
由于ruby默认使用的镜像在国外,剩下的不说了,大家都懂得,然后万能的淘宝镜像,切换一下:

$ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/

证据如下: 
这里写图片描述

然后开始安装:

$ gem install redis-stat

然后,一般来说,你会发现报错啦,报错如下:

复制代码
Building native extensions.  This could take a while...
ERROR:  Error installing redis-stat:ERROR: Failed to build gem native extension./usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/share/include/ruby.hGem files will remain installed in /usr/local/share/gems/gems/json-1.8.3 for inspection.
Results logged to /usr/local/share/gems/gems/json-1.8.3/ext/json/ext/generator/gem_make.out
复制代码

哈哈,,我好机智,想到大家很多人会搜索这个错误信息,会不会因此被带到这里呢?就像试试认真写的博客,会有多少人看。 
这个错呢,很简单,就是因为没有安装ruby-devel,所有通过yum给安装上吧

$ yum -y install ruby-devel

这个就不要截图了吧。没什么好看的。

安装完成后,再次执行 gem install redis-stat 
这里写图片描述

然后,至此安装完成,看一看劳动成果吧。随便说一句,它对redis的效率影响,基本可以忽略不计,因此,可以放心的使用。

$ redis-stat

 

这里写图片描述

然后,他会自带一个web的版本。大家可以通过浏览器来访问,具体方式留给大家自己去查一查,搜一搜吧。

单机版的redis服务安装与监控,就全部搞定。so easy!!!

转载于:https://www.cnblogs.com/rxbook/p/7122830.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【技术分享】Ubuntu下使用微信教程

做后端开发的同学用的Linux&#xff08;ubuntu&#xff09;,肯定会因为没有适配微信版本会感觉不太舒服&#xff0c;很多时候因为缺少一些办公通讯软件而感到不便。现在已经有很方便的Wine WeChat方案&#xff0c;但是微信在Wine上配置还有许多bug&#xff0c;今天在github上看…

python join函数_Python join()函数

原博文 2016-08-12 10:16 − 今天写python 100例时&#xff0c;有个题目是大致是这样的&#xff1a;已知输入形式是1321&#xff0c;要求输出形式为1123 一开始思路是将输入的字符串用split()函数划分成数组&#xff0c;在对数组进行排序&#xff0c;再用for循环输出 代码附上&…

CSS中的盒子

盒子 盒子模型解释元素在页面中显示成一个方块&#xff0c;类似一个盒子&#xff0c;CSS盒子模型就是使用现实中盒子来做比喻&#xff0c;帮助我们设置元素对应的样式。盒子模型示意图如下&#xff1a; 把元素叫做盒子&#xff0c;设置对应的样式分别为&#xff1a;盒子的边框…

Djang重新整理migrations,解决:Django Table xxx already exist

在开发过程中&#xff0c;由于需求变更或者自我重构&#xff0c;需要清理migrations&#xff0c;以保持代码整洁和后续的可维护性。 场景一 不考虑数据库数据表&#xff0c;可以完全清空数据库里面的表的数据。 步骤&#xff1a; 删除所有migrations find . -path "/migr…

安全随笔2:对称加密应用场景

MD5或者说HASH值是一种不可逆的算法。如果需要从密文还原成明文&#xff0c;那么就需要对称和非对称这两类可逆算法。 首先&#xff0c;简单介绍下这两类算法。图9-1是对称算法的示意图&#xff1a; 图9-1 对称算法 在对称算法中&#xff0c;首先需要发送方和接收方协定一个密钥…

python安装多久_python安装与使用

1、进入官网下载python软件 python-3.4.4.amd64.msi http://www.python.org/download/ 这个软件包含三个环境&#xff0c;如下图&#xff1a;2、双击安装软件 3、设置环境变量path";C:\Python34"; 4、验证是否安装成功 进入cmd中&#xff0c;输入python,如果出现如下…

CSS中的块元素,内联元素,内联块元素

块元素,内联元素,内联块元素 元素就是标签&#xff0c;布局中常用的有三种标签&#xff0c;块元素、内联元素、内联块元素&#xff0c;了解这三种元素的特性&#xff0c;才能熟练的进行页面布局。 块元素块元素&#xff0c;也可以称为行元素&#xff0c;布局中常用的标签如&…

django 与 vue 的完美结合

最近接到一个任务&#xff0c;就是用django后端&#xff0c;前段用vue&#xff0c;做一个普通的简单系统&#xff0c;我就是一搞后端的&#xff0c;听到vue也是比较震惊&#xff0c;之前压根没接触过vue。看了vue的一些文档&#xff0c;还有一些项目&#xff0c;先说一下django…

东芝确定半导体重组计划:保留闪存其他全卖

会计丑闻给日本东芝公司的业绩带来严重影响&#xff0c;为了提高盈利&#xff0c;东芝正在对旗下的半导体、个人电脑、白色家电等业务进行一次重大重组。据日经新闻1月23日报道&#xff0c;东芝已经正式制定了芯片业务重组的详细计划&#xff0c;除了占据优势的闪存芯片之外&am…

python画两条曲线图_python绘制多个曲线的折线图

这篇文章利用的是matplotlib.pyplot.plot的工具来绘制折线图&#xff0c;这里先给出一个段代码和结果图&#xff1a; # -*- coding: UTF-8 -*- import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt #这里导入你自己的数据 #...... #...... #x_axix&a…

oracle 截取字指定的字符串

过滤指定的字符串,一字符串有重复的数据内容,所以需要去掉重复的内容,subst()截取 起止下标;instr()获取终止下标位置 例如:substr(p.address, 0, instr(p.address, -, 1, 1)-1) ); case when length(substr(p.address, 0, instr(p.address, -, 1, 1)-1) ) 13 then substr(sub…

数据分级分类实施指南_运营商行业数据安全治理实践

建立组织构建大数据安全保障组一、大数据安全保障工作组职责 1、负责制定大数据信息安全策略&#xff0c;明确信息安全目标。 2、组织相关平台负责人定期召开信息安全会议。 3、负责客户数据安全突发事件应急方案实施和大数据信息系统日常安全运行管理的组织协调及决策工作。 4…

servlet中中文正常显示,mysql数据库手动插入中文正常显示,servlet向mysql中插入中文显示乱码...

作者&#xff1a;http://5563447.blog.51cto.com/5553447/1422627 问题是&#xff1a;就是POST请求提交表单数据给servlet,通过JDBC插入Mysql,出现中文乱码。 解决方式&#xff1a;在url后面加这句 ?useUnicodetrue&characterEncodingutf-8 我的项目&#xff1a; 结果&am…

垃圾回收算法_垃圾回收算法有哪些

垃圾检测通常通过建立一个根对象的集合以及建立一个从这些根对象开始能够触及的对象集合来实现。如果正在执行的程序可以访问到根对象和某个对象之间存在引用路径&#xff0c;这个对象就是可触及的。对于程序来说&#xff0c;根对象总是可以访问的。从这些根对象开始&#xff0…

不错的电子书下载网站

为什么80%的码农都做不了架构师&#xff1f;>>> www.jb51.net 电子书质量不错,虽然是扫描版的,但是都是高清的. vdisk.weibo.com 网盘, 内容很多! 转载于:https://my.oschina.net/GMT/blog/1188971

GeoHash核心原理解析

原文地址&#xff1a;http://www.cnblogs.com/LBSer/p/3310455.html geohash for php&#xff1a;附件下载geohash.tar.gz 引子 机机是个好动又好学的孩子&#xff0c;平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西。某一天机机到北海公园游玩&#xff0c;肚肚饿了&am…

[转载]流行视频格式讲解

*. MPEG/.MPG/.DAT MPEG也是Motion Picture Experts Group 的缩写。这类格式包括了 MPEG-1, MPEG-2 和 MPEG-4在内的多种视频格式。MPEG-1相信是大家接触得最多的了&#xff0c;因为目前其正在被广泛地应用在 VCD 的制作和一些视频片段下载的网络应用上面&#xff0c;大部分的…

解决Ubuntu中文件管理器死掉的情况

有时会遇到Ubuntu文件管理器死掉的情况&#xff0c;怎么点击都没有反应&#xff0c;这时只需在终端上运行 ps -A | grep nautilus&#xff0c; 查找文件管理器nautilus对应的pid,然后sudokillpid就可以关闭文件管理器进程&#xff0c;随便点击一个文件夹就可以重启文件管理器了…

element table 怎么知道点击的是第几行_el-data-table, 让CRUD更简单??

基于Vue2.x, element-ui 2.x&#xff0c;以及开源组件el-form-renderer封装了一个业务组件el-data-table&#xff0c;已在github开源&#xff0c;其目标是&#xff1a;makes restful api crud easily 特点&#xff1a;1. 使用axios自动发送请求2.自带新增/修改/删除逻辑(默认新…

样本量

sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare 根据power&#xff0c;effect size,a,决定样本量 # -*- cod…