「Php/redis/helloworld」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==取得&格納== $redis = new Redis(); $redis->connect('127.0.0.1', 6379); // $redis->connect('127.0.0.1', 6379, 2.5); // 2.5 sec timeout. $redis->set('key1', 'hog...」) |
(→セッションハンドラに使う) |
||
| 行44: | 行44: | ||
==セッションハンドラに使う== | ==セッションハンドラに使う== | ||
| + | <pre> | ||
| + | ini_set('session.save_handler', 'redis'); | ||
| + | ini_set('session.save_path', "localhost:6379?persistent=1&weight=1&timeout=1&retry_interval=2"); | ||
| + | </pre> | ||
| + | 2台構成とかの場合。 | ||
session.save_handler = redis | session.save_handler = redis | ||
session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2" | session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2" | ||
2026年4月10日 (金) 16:01時点における最新版
取得&格納
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
// $redis->connect('127.0.0.1', 6379, 2.5); // 2.5 sec timeout.
$redis->set('key1', 'hoge');
print $redis->get('key1'); // hoge
有効時間を決めて格納
$redis->setex('key2', 10, 'hoge_10秒だけ保持');
print $redis->get('key2');
削除
$redis->delete('key1');
$redis->delete('key1', 'key2'); // 一括指定も可能
リスト追加
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
前方追加
$redis->lPush('key1', 'C');
リスト全取得
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C');
$redis->lRange('key1', 0, -1); /* array('A', 'B', 'C') */
$redis->lSize('key1');/* 3 */
ランク取得
$redis->delete('z');
$redis->zAdd('key', 1, 'one');
$redis->zAdd('key', 2, 'two');
$redis->zRank('key', 'one'); /* 0 */
$redis->zRank('key', 'two'); /* 1 */
$redis->zRevRank('key', 'one'); /* 1 */
$redis->zRevRank('key', 'two'); /* 0 */
ソート取得
$redis->delete('z');
$redis->zAdd('key', 1, 'one');
$redis->zAdd('key', 2, 'two');
var_dump($redis->zRange('key', 0, -1); //Array ( [0] => one [1] => two )
セッションハンドラに使う
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', "localhost:6379?persistent=1&weight=1&timeout=1&retry_interval=2");
2台構成とかの場合。
session.save_handler = redis session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2"
キーリスト取得
$redis->set('user1', 1);
$redis->set('user2', 2);
$redis->set('user3', 3);
$redis->set('test', 10);
var_dump($redis->keys('user*')); // array(3) { [0]=> string(5) "user1" [1]=> string(5) "user2" [2]=> string(5) "user3" }
