RedisでrpushするとConnectionError

(実験)

>>> redis
>>> conn = redis.Redis()
>>> conn.rpush('mylist', b'Hello')
〜エラー大量発生〜
raise ConnectionError(self._error_message(e))
〜省略〜


Redisサーバーなるものをインストールしなければならないらしい。

Redisのインストール

こちらのサイトを参考した。

Redisダウンロードページから、最新版の.tar.gzファイルをダウンロードするか、wgetやcurlコマンドでファイルを取得する。

以下、Lubuntu 16.04(32ビット版)にて実行した。

(準備) これをやらないと、make testでエラーになる。

$ sudo apt-get -y install tcl8.5
$ wget http://download.redis.io/releases/redis-3.2.0.tar.gz
$ tar xvzf redis-3.2.0.tar.gz
$ cd redis-3.2.0
$ make test
$ make
$ sudo make install

Redisサーバーの起動

それでは、Redisサーバーを動かしてみましょう。

$ redis-server
〜省略〜
11021:M 30 May 17:49:30.771 * Increased maximum number of open files to 10032 (it was originally set to 1024).
11021:M 30 May 17:49:30.772 # Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with 'noeviction' policy now.
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.2.0 (00000000/0) 32 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 11021
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

11021:M 30 May 17:49:30.774 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
〜省略〜

なにやらケーキっぽいアスキーアートが表示されれば、ちゃんと起動したということだそうです。

デフォルトでは、6379番ポートで動く。

とりあえず、これでRedisサーバーが動いたので、さっきエラーが出たPythonスクリプトを動かしてみると、

>>> redis
>>> conn = redis.Redis()
>>> conn.rpush('mylist', b'Hello')
1
>>> 

よし、成功。

Pythonプログラミング物語 © 2016 Frontier Theme