redis 是個 Key – Value 資料庫

Phpiredis 是個 PHP 模組,基於 hiredis

phpRedisAdmin 是個 Web 的操作介面,類似 phpMyAdmin

 

安裝 redis

wget http://download.redis.io/releases/redis-4.0.9.tar.gz

tar zxvf redis-*.tar.gz

cd redis-*

make distclean

make PREFIX=/usr/local/redis install

 

啟動 redis

/usr/local/redis/bin/redis-server

 

簡單測試 redis

redis-cli
> ping
> set foo bar
> get foo

 

設定 redis 啟動程式 (複製 tarball 裡面的範例稍作修改)

cp -rp utils/redis_init_script /etc/init.d/redis


sed -i 's/\/usr\/local\/bin\//\/usr\/local\/redis\/bin\//g' /etc/init.d/redis

sed -i 's/^CONF=".*/CONF="\/etc\/redis\/redis.conf"/g' /etc/init.d/redis

 

設定 redis config (複製 tarball 裡面的範例稍作修改)

mkdir /etc/redis/

cp -rp redis.conf /etc/redis/

 

vi /etc/redis/redis.conf

bind 127.0.0.1 123.123.123.123 # 綁上除了本機的 IP,除非不要遠端連線

daemonize yes # 背景執行

requirepass foobared # 設置密碼,或者複雜點 echo "foobared" | sha256sum
                     # 可是這個會讓當 /etc/init.d/redis stop 時出現 (error) NOAUTH Authentication required. Waiting for Redis to shutdown ...

 

設過密碼後可以這樣子登入,要認證才可以進一步動作

redis-cli
> auth foobared

 

redis 有一個要求就是

vm.overcommit_memory = 1 # /etc/sysctl.conf

 

使用 phpRedisAdmin

安裝

composer create-project -s dev erik-dubbelboer/php-redis-admin /var/www/html/phpRedisAdmin

# 又或者
git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git
cd phpRedisAdmin
git clone https://github.com/nrk/predis.git vendor

 

設定 phpRedisAdmin config

cd /var/www/html/phpRedisAdmin/
cp -rp includes/config.sample.inc.php includes/config.inc.php

 

vi includes/config.inc.php

// 設置 IP 或名稱,在 servers 陣列裡也可以設多組 host
'servers' => array(
    array(
      'name'   => 'local server', // Optional name.
      'host'   => '123.123.123.123',
      'port'   => 6379,
      'filter' => '*',
      'scheme' => 'tcp', // Optional. Connection scheme. 'tcp' - for TCP connection, 'unix' - for connection by unix domain socket
      'path'   => '', // Optional. Path to unix domain socket. Uses only if 'scheme' => 'unix'. Example: '/var/run/redis/redis.sock'

      // Optional Redis authentication.
      //'auth' => 'redispasswordhere' // Warning: The password is sent in plain-text to the Redis server.
    ),
),

// 還有登入的帳密,讓連介面時可以有帳密
// Uncomment to enable HTTP authentication
'login' => array(
    // Username => Password
    // Multiple combinations can be used
    'admin' => array(
      'password' => 'adminpassword', // <<< 改這個
    ),
    'guest' => array(
      'password' => '',
      'servers'  => array(1) // Optional list of servers this user can access.
    )
),

使用 https://github.com/nrk/phpiredis (phpRedisAdmin  是用這個模組)

yum install hiredis hiredis-devel

git clone https://github.com/nrk/phpiredis.git
cd phpiredis
phpize && ./configure --enable-phpiredis
make && make install

echo 'extension=phpiredis.so' > /etc/php.d/phpiredis.ini

寫個 PHP

<?php

$redis = phpiredis_connect('172.16.10.142', 6379);

$response = phpiredis_command_bs($redis, array('GET', 'foo'));

echo $response . '<br>';

$response = phpiredis_multi_command_bs($redis, array(
    array('SET', 'test', '1'),
    array('GET', 'test'),
));

echo '<pre>', print_r($response), '</pre>';

 

有另一個 PHP 模組 phpredis 可以參考 https://ssorc.tw/5977

最後修改日期: 2018 年 06 月 02 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。