mysqlで指定したtableを削除する方法
mysql -h ホスト名 -u ユーザ名 -pパスワード -D test_database -e 'show tables' -s | egrep 'test' | xargs -I '@@' echo mysql -h ホスト名 -u ユーザ名 -pパスワード -D "test_database -e 'DROP TABLE @@'"
キャッシュについてのあれこれ
弊プロジェクトでは3種類のキャッシュを利用していて、違いがわからなかったので調査したものをまとめました
memcached
key-value store型のキャッシュ
主にRDBMSにおけるクエリの結果などを保存しておく
揮発性が高い?
from: http://gihyo.jp/dev/feature/01/memcached/0001
キャッシュクリア方法
/etc/init.d/memcached restart
CDN(Content Delivery Network)
様々なところにサーバを配置して、ネットワーク的に(≒物理的に)距離が近いサーバからキャッシュを取得する
これによって、
- 地域によってレスポンスが遅くなるような状況を防ぐ
- 処理の負荷分散
を実現する
キャッシュクリア方法
webページで操作して削除
弊pjではcurlコマンドを叩くことでcui上で操作している
APCU(Alternative Php Cache(APC) User cache)
APCがAPCuとZend OPcacheに取って代わられたワケ - Qiita
PHPのキャッシュ
webサーバ(apache, nginxなど)にキャッシュが保存される
キャッシュクリア方法
gracefulをする
# apache service httpd graceful /etc/init.d/httpd graceful # nginx service nginx graceful /etc/init.d/nginx graceful
「/etc/init.d/xxx start」と「service xxx start」の違い
service xxx
を使ったほうがよさげ?
APCUはwebサーバ上にあるので、restart
すると一時的にサーバに接続できなくなってしまう
なので、かわりにgraceful
を利用する
※gracefulの仕組み
すべての子プロセスの処理後に、再起動命令を走らせる
その後、親プロセスは設定ファイルの再読込を実行
これにより、サーバーがダウンすることなく、あたかも生きたまま設定の反映ができるようになる
補足:apache, nginx
webサーバのOSS
webサーバとして利用するマシンにインストールして、ホスティングを行う
昔はapacheが主流だったが、最近(2016くらいから?)はnginxも主流になりつつある
apache, nginxを再起動したら、apucキャッシュは削除される
twitterのOAuth認証ではまったこと
最近twitter APIを使ってOAuth認証しようとしたら、以下のようなエラーが出てハマった。
Callback URL not approved for this client application.
これは、callback URLが間違ってるよみたいなこと
2018.6.13以降はちゃんと対応させないとだめになった
なので、アプリ登録したページから、以下のcallback URLを設定
https://developer.twitter.com/en/apps
その後、ソースを変更
twitter.getOAuthRequestToken("app://");
AndroidManifest.xml
も設定してたら変更
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="app" /> </intent-filter>
これでヨシ
参考URL