session管理をfileからredisに変更してみた。
ElastiCacheを使いたいところだけど、一旦はサーバ内部で使う。
### redisのインストール #########
cd ~
yum list installed | grep redis
redis-server -v
redis-cli -v
sudo yum install php72-pecl-redis
sudo yum install redis
# うまくいかない場合はepelを指定 sudo yum --enablerepo=epel install redis
# jemalloc と redis がインストールされる
################################
### redis-server のスタート #########
redis-cli ping
ps -ef | grep redis
redis-cli info | grep redis_version
sudo service redis start
## redisの自動起動設定
chkconfig --list redis
redis 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sudo chkconfig redis on
chkconfig --list redis
redis 0:off 1:off 2:on 3:on 4:on 5:on 6:off
################################
## envの修正 fileをredisに変更 ######
cd /var/www/repositoryname
cat .env | grep SESS
SESSION_DRIVER=redis
## 適用、再起動
# session履歴が初期化される
# OPcacheの影響で最大60秒の遅延あり
php artisan config:cache
sudo service httpd restart
#################################
### 値を確認する方法 redis-cli -p 6379 ##
redis-cli
127.0.0.1:6379> keys *
127.0.0.1:6379> get laravel_database_laravel_cache:qY6lzTcWZYTc9u1lQ
127.0.0.1:6379> ttl laravel_database_laravel_cache:vaUS4158
127.0.0.1:6379> dbsize
127.0.0.1:6379> info
コマンドリファレンス — redis 2.0.3 documentation
127.0.0.1:6379> info
config_file:/etc/redis.conf
sudo cat /etc/redis.conf | grep logfile
logfile /var/log/redis/redis.log
sudo cat /etc/redis.conf | grep dbfilename
dbfilename dump.rdb
sudo cat /etc/redis.conf | grep lib
dir /var/lib/redis
sudo ls -lh /var/lib/redis/
dump.rdb
redis-cli --scan --pattern '*' | head
redis-cli get laravel_database_laravel_cache:eSgTNeqZe3H
ls -lta storage/framework/sessions/* | wc -l
sudo rm storage/framework/sessions/*
###################################
### 補足情報 #####################
# redisの開始、再起動、終了コマンド
# sudo service redis start
# sudo service redis restart
# sudo service redis stop
# これでも良い sudo /etc/init.d/redis start
# これでも良い sudo /etc/init.d/redis stop
# $ reboot
# 以下でシャットダウンできるらしい
# 127.0.0.1:6379> config set dir /var/run/redis
# 127.0.0.1:6379> shutdown
# データの復元
redisのdump.rdbファイルからリストアする - Qiita
################################
ElastiCache に変えたい場合は、.envを以下に修正すれば行けそう。
REDIS_HOST=ElastiCacheのクラスターのエンドポイント情報を記載します。
REDIS_PORT=ElastiCacheのポート番号を記載します。
REDIS_READ_WRITE_TIMEOUT=60等、任意の値を記載します。
参考資料
【Laravel】セッション管理にRedisを使用する | ブラックボックス
### composerでredisのインストール ###########
PHPのRedisクライアントPredis入門 (1.概要とインストール) |
遅いらしいので、yumにしておく。
## cd /var/www/repositoryname
## git pull origin master
## redis-cli ping
## ps -ef | grep redis
## redis-cli info | grep redis_version
##
## ## 開発環境の場合
## # composer show | grep redis
## # composer update
## # composer require predis/predis
## # composer remove predis/predis
##
## ## 本番環境の場合
## # composer install
################################