Redisのスローログを確認する方法とKEYSではなくSCANを使った方がいい理由

こんにちはしばたにえんです 今回は、Redisのスローログを確認する方法とKEYSではなくSCANを使った方がいい理由について紹介します。 スローログを確認する手順 Redisの注意点 KEYSは使わない方がいい SCANの概要 SCANを実行する 参考 スローログを確認する…

JMeterの使い方

しばたにえんです。 今回は負荷テストのため、JMeterを試してみたので使い方をまとめました。 意外とかなり簡単で、トータル10分程度で試せるかと思います。 JMeterのダウンロード(Macの場合) JMeterの起動 Thread Groupを作成 HTTP Requestを作成 View Resu…

Keen-Slider使ってみた

Keen-Sliderというカルーセル用パッケージがいい感じだったので紹介します Keen-Sliderの何が優れているの? 超軽い 依存ライブラリがない typescriptのサポート React、Vue、Angularをサポート 簡単 (参考記事)ics.media 使い方 前準備 package.jsonのイン…

さよならstrpos。今までありがとう。

phpを使ってる人なら1回はstrpos関数を使ったことがあると思います。 そして罠にも引っかかったことがあると思います。。。 実装

Lambdaで1時間に1回RDSのスナップショットをとる方法

RDSのスナップショットはデフォルトで1日に1回取れるのですが、1時間に1回スナップショットを取りたいと思ったのでその方法をまとめます Lambda用のロールの作成 AmazonRDSFullAccessのポリシーを付与してロールを作成、この辺は適宜調整お願いします Lambda…

TOAST-UI Editorの使い方

記事編集に使えそうなテキストエディターを探していたところTOAST-U I Editorがかなりいい感じだったので 軽く使い方をまとめようと思います。 今回作成したサンプルはこんな感じです。 導入 1. 構成 2. package.jsonを設定してインストール package.jsonに…

【SEO】disallow、noindex、nofollowの違い

エキサイトのしばたにえんです。 今更ながらrobots.txtのdisallow、noindex、nofollowの違いについて調べました。 disallow https://sample.co.jp/robots.txtに下記を追加することで設定されます。 下記の例だとhttps://sample.co.jp/sample以下のページにdi…

【Nginx】upstream sent too big headerによる502 Bad Gatewayの解消

こんにちは、エキサイト株式会社しばたにえんです。 upstream sent too big headerによって、502 Bad Gatewayが発生していたのでその時の対処法です 原因 原因としてはURLパラメーターが大きすぎることによってレスポンスヘッダーのサイズが大きくなっていた…

【MySQL】ORDER BY DESCを使わずに逆順ソートする裏技

こんにちは、エキサイト株式会社しばたにえんです。 ORDER BY DESCを使わずに逆順ソートする裏技を紹介します。 問題点 MySQL8.0未満だと降順インデックスを貼ることができず、キー値は昇順で入るためDESCでソートする際にパフォーマンスが低下してしまう。 …

remote_addrとX-Forwarded-Forについて

エキサイトのしばたにえんです。 remote_addrとX-Forwarded-Forの違いについてよくわからなかったので調べました。 remote_addr アクセス元のIP。直前のIPを持ちます。 Client ↓ LoadBalancer(remote_addr は Client) ↓ ApplicationServer(remote_addr は Lo…

SQLServerのWHERE句は大文字小文字でもヒットしてしまう問題

エキサイトしばたにえんです。 早速ですが、 WITH hogefuga_table AS ( SELECT 'hogefuga' AS word ) SELECT * FROM hogefuga_table WHERE word = 'HOGEFUGA'; こちらhogefugaがヒットされてしまいます。 WHERE句の大文字小文字を判別してくれません。 SQLSe…

git branchの結果を時間順に表示

エキサイトのしばたにえんです。 時間順にソートするgit branchのoptionの紹介です 「さっき作ったブランチが見つからない」、 「ターミナルのタブも消してしまってhistoryでも見つからない」 って時に便利です。 新しい順の表示 git branch --sort=-authord…

LocalDateTime型をrequestから受け取るカスタムアノテーションを作る

エキサイトのしばたにえんです。 早速ですが カスタムアノテーションの作成をしていきます。 リクエストからLocalDateTimeを受け取る時に@JsonFormatを使って受け取ると思いますが、この時にpatternを書く必要があります。 @JsonFormat(pattern = "yyyy-MM-d…

WITH句の使い方

エキサイトのしばたにえんです。 sqlのWITH句をこないだ初めて使いましたのでその使い方を紹介いたします。 Sql Server MySQL (8.0以降) PostgreSQL Oracle Database (12c以降) Maria DB (10.2.1以降) でWITH句を使用することができます。 使い方 以下のよう…

Formでint型の変数には@NotNullは使えない

こんにちは、エキサイトのしばたにえんです。 知っている人なら当たり前のことかもしれませんが、Formでint型の変数には@NotNullは使えません。 早速ですが以下をご覧ください SampleController.java @RestController public class SampleController { @GetM…

length()の値が違う

エキサイト株式会社 メディアサービスエンジニアのしばたにえんです。 早速以下のコードを見てください void getStringLength() { String str = "𩸽"; System.out.println(str.length()); } 実はこの結果は2です。 原因はサロゲートペアにあります。 サロゲ…

AtomicIntegerを使ってみた

エキサイト株式会社 メディア開発のしばたにえんです。 さっそくですが、下記のコードをご覧ください class CountTest { private int num = 0; @SneakyThrows void CountThreadNum() { int threadNum = 10; ExecutorService service = Executors.newFixedThr…