タイトルの通り、下記のハンズオンやってみました!
https://aws.amazon.com/jp/getting-started/hands-on/boosting-mysql-database-performance-with-amazon-elasticache-for-redis/
英語でのみしかハンズオンがない+英語読解に時間をかけたくなかったので下記を参考にしながらEC2/VPC/SG/RDS/Redis立ち上げていきました。基本的に記事を参考にして行ったので、Redisについて/詰まった箇所をまとめます。
https://zenn.dev/rescuenow/articles/41ad9d369a74ca
RedisとMemcachedについて(ついでなので比較して覚えるためにMemも..)
特徴 | Redis | Memcached |
---|---|---|
データ構造 | 複数(リスト、セット、ハッシュなど) | シンプルなキーバリューのみ |
永続性 | あり(データの永続化が可能) | なし(メモリ上のみ) |
スケーラビリティ | シャーディング、クラスタリング機能 | マルチスレッドでスケールアップ |
パフォーマンス | 多機能だが高速 | シンプルで非常に高速 |
データサイズ | キー:最大512MB、バリュー:最大512MB | キー:最大250B、バリュー:最大1MB |
用途 | 複雑なデータ処理、永続化が必要な場合 | シンプルで高速なキャッシュ専用 |
複雑性 | より複雑で機能豊富 | シンプルで使いやすい |
メモリ効率 | データ構造により異なる | 非常に効率的 |
学んだこと
1.redis暗号化について
redisのエンドポイントにpingをして疎通確認をしたがエラーが返ってきた。
暗号化したプロトコルにできてなかった。(rediss://)
またRedisの設定は固定で暗号化される
(暗号化してないプロトコル:redis://)
2.TTL
Time To Liveの略で、データやパケットが破棄されるまでの時間や、処理の繰り返し回数の上限を意味する
TTL = 10とすると、10秒間キャッシュは保持され、その後削除される
3.Redisのためのコード書く
下記のソースコードが必要らしい、てっきり自動でやってくれると思ってました。
1)Redisにデータがキャッシュされているか
2)キャッシュがある場合はRedisから取得
3)キャッシュがない場合はDBから取得しRedisに保存
4.Redisのキーについて
Redisでは
key = f"planet:{id}"
のようにコロンで区切るらしい
https://qiita.com/morrr/items/271548776938e7ddc0ec#%E3%82%AD%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6