Encore's Blog

Web 开发者 | 专注于WEB应用程序的软件开发人员
PostgreSQL - 在大数据表中进行随机数据抽样
数据库 2018-10-09 Encore Shao

PostgreSQL - 数据抽样 (RANDOM vs. TABLESAMPLE) 首先我们来看看数据总量: (共计 3百万 以上)(encore@localhost) [pg10] > select COUNT(*) from big_data_table; count --------- 3212557 (1 row) Time: 242.859 ms1. 使用 RANDOM() 函数,这也是我们最常用的方式随机查询函数(encore@localhost) [pg10] > EXPLAIN ANALYZE select * from big_data_table ORDER BY random() limit 1; QU...

Nginx中阻止和拒绝IP地址或网络子网
服务器 2018-10-06 邵壮

前天发现我的个人网站很慢,很慢,有时都无法访问。最后连接到服务器,发现有人恶意攻击,在我的服务器留下很多很多恶意评论,同时生成20G的垃圾.  清除掉垃圾后,我的网站又重归线上。 接下来, 我们如何避免再次这些恶意之人的攻击. 一个简单的方案:通过nginx web服务器下客户端访问网站的主机名或IP地址阻止或拒绝访问? 如何配置Nginx阻止IPs? server { server_name xxx.xxx.xxx; location ^~ /comments/ { # 下面这些都是那些恶意ips deny 62.210.180.122; deny 62.210.202.176; deny 62.210.82.122; deny 62.210.202.55; deny 62.210.202.48; ...

标签: Nginx
Python3 - 爬虫之requests和BeautifulSoup的使用
工具 2018-09-16 邵壮

前提: 开始前,请确保您的电脑已安装Python3:> python --version Python 3.6.5 安装 Requests 为了处理网页,我们需要安装requests, requests库允许您在Python程序中使用HTTP。 接下来, 我们将使用pip安装Requests:> pip install requests 如果以前安装了请求,您将在终端窗口收到类似以下内容的反馈: Requirement already satisfied: requests in /usr/local/lib/python3.6/site-packages (2.18.4)安装 Beautiful Soup 正如我们对请求所做的那样,我们将使用pip安装Beautiful Soup。 可以使用以下命令安装当前版本的Beautiful Soup 4:> pip...

如何在PostgreSQL中将用户更改为超级用户
数据库 2018-09-13 邵壮

在PostgreSQL中修改用户权限的范围可以从简单到极其复杂,具体取决于实际需要的许可粒度。  但是,在大多数情况下,强大的ALTER USER命令应该用于执行从允许用户登录,创建数据库,管理角色甚至成为 SUPERUSER 帐户的所有操作。 我们将简要探讨ALTER USER命令的强大功能,以便您可以根据需要轻松执行各种权限分配和删除。 创建新用户 在我们改变用户权限之前,我们应该建立一个新的用户帐户(通常称为ROLE)。 首先,我们将列出所有现有用户: =# SELECT usename FROM pg_user; usename ---------- postgres (1 row) 默认情况下,postgres通常是唯一存在的用户,因此我们要创建一个新的encore用户来管理我们的数据库。 这...

标签: PostgreSQL
PostgreSQL - 为终端交互式psql提供密码
数据库 2018-09-08 邵壮

前提:我们拥有一个远程PostgreSQL数据库的访问权限。 当我们在本地使用psql连接时,每次都需要提供密码,才可以继续操作,我想,可能会有人和我的想法一样,有点麻烦,有没有什么方便的方式来连接我们已拥有权限的PG呢? 以下我们来介绍两种方法为非交互式地为PostgreSQL的交互式终端psql命令提供密码, 每种方法都允许使用基于终端的PostgreSQL实用程序轻松编写shell脚本,因为您可以从密码文件或环境变量中提供用户凭据。 1. 使用密码文件提供密码 要使用此方法,请在主目录中创建~/.pgpass文件并限制其权限,以便实用程序不会忽略它。$ touch ~/.pgpass $ chmod 0600 ~/.pgpass然后使用以下结构定义用户凭据。server:port:database:username:password需要注意的是,密码以外的每个字段都可以替...

标签: PostgreSQL
Git 钩子:提交前使用Rubocop做代码格式检查
工具 2018-09-05 邵壮

Git hook - 如果您使用git作为代码管理工作。 前提摘要:我们会在Rails项目中使用rubocop来校验我们代码的格式,语法等等是否正确。但有时候我们在提交时候在本地会忘记跑rubocop来校验代码是否合格,此时,如果你的项目配置了自动化CI, 那么你可能会收到一封failed的邮件通知. 这样的体验会很不好! 那么为了避免这些事情发生,git有一个很好的钩子来帮我们实线提交前的验证。<pre-commit>, 是不是听起来很不错,接下来我们来使用Ruby来完成这个git hook.  查看所有的hooks - 在你自己项目的根目录下运行 #blog> ls .git/hooks applypatch-msg.sample post-update.sample pre-push.s...

标签: Ruby Git Rails
Ruby - 中定位方法定义的位置
编码 2018-09-02 邵壮

Ruby: 2.5.x, 2.6.x  在Ruby中如何快速定位方法的定义位置, 接下来,我们看看一些示例代码 Method 1: Object#source_location 1 #!/usr/bin/env ruby 2 3 class Color 4 def initialize 5 end 6 7 def default_color 8 'black' 9 end 10 end 11 12 puts "RUBY VERSION: #{RUBY_VERSION}" 13 color = Color.new 14 puts color.method(:defaul...

Ruby - 如何通过一组键获取哈希值
工作 2018-08-15 邵壮

Ruby: 2.5.1  -  Hash#dig 前提:一个已知的Hash数据,然后知道一组键值. 从而想获取最终的value. 在我们数据中有一个名为data jsonb 字段, 然后不同Source的数据,数据是结构是不一样的。如以下示例: 1. { "values" => 10 } 2. { "followers"=> { "count"=>0 } } 3. { "financials"=>[{"margin"=>{"value"=>10}}] } 4. { "social" => { "linkedin" => { "employees" => {"value" => 234} } } } 本来想着拓展一下Hash类,最后发现Ruby中已经实现了 Hash#dig ...

标签: Rails Ruby
如何知道我们的数据库有多大?
数据库 2018-08-06 邵壮

很多时候我们需要关注数据库增长,以确保它不会超出你的磁盘,或者你可以提前做好准备。 接下来我们会说下很常见的问题 - 您的数据库有多大。 很幸运的是PostgreSQL已经有函数很快来帮助您轻松回答这个问题。  如何知道我们的数据库有多大? 使用: pg_database_size()函数,它接受数据库集群中数据库的名称并返回以字节为单位的大小。 当大多数数据库的大小为兆字节,千兆字节甚至太字节时,尝试破译字节可能会非常难看。 幸运的是,有一个名为pg_size_pretty()的漂亮函数,它使这些数字更具人性化, 可读性会更高些。 另外,还有一个在PG中有一个current_database()函数,它告诉我们当前连接到哪个数据库。  最后当我们把这些函数结合起来你就得到了想要的答案: SELECT pg_size_pretty(pg_data...

标签: PostgreSQL
iTerm2 + Oh My Zsh + Powerlevel9k (macOS)
开发 2018-08-05 邵壮

iTerm2 + Oh My Zsh + Auto suggestions + powerline + [Powerlevel9k] - (macOS) iTerm2 > brew cask install iterm2 Or, if you do not have homebrew (you should ;)): Download and install iTerm2 - https://www.iterm2.com/downloads.html iTerm2 has better color fidelity than the built in Terminal, so your themes will look better. Oh My Zsh More info here: https://github.com/robbyr...

标签: iTerm2 Zsh MacOS
This website uses cookies to ensure you get the best experience on our website.
Got it!