session管理をfileからredisに変更

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 コマンド一覧 - Symfoware

コマンドリファレンス — redis 2.0.3 documentation

redis-cliの使い方 - Qiita

 

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 - Qiita

 

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を以下に修正すれば行けそう。

Laravelのセッション管理をRedisに変更

REDIS_HOST=ElastiCacheのクラスターのエンドポイント情報を記載します。
REDIS_PORT=ElastiCacheのポート番号を記載します。
REDIS_READ_WRITE_TIMEOUT=60等、任意の値を記載します。

 

 

参考資料

【Laravel】セッション管理にRedisを使用する | ブラックボックス

Redis 8.x Laravel

redisサーバー構築メモ - @Konboi memo

Redisのインストール・セットアップ - Qiita

 

 

 

### 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

################################