タグ

ブックマーク / www.denzow.me (3)

  • Django 2.0 + Channels 2.xを使ってWebSocketを扱う(その1) - [Dd]enzow(ill)? with DB and Python

    現在仕事WEBサービスを作るときはDjango一択な環境にいます。今度Websocketが必要になったのですがDjangoでWebsocketどうするんだってことで調べたところChannelsというライブラリを使うらしいです。Djangoのグループが作っているので安心感があります。Channelsは日語でもいくつか記事がありましたが1.x時代のものでそのままでは動かなかったりしたのでチュートリアルを中心に試してみました。 ということで何回かにわけて(たぶん3回?)Django Channelsのチュートリアルをベースにちょっとだけ手を加えた内容をまとめていきます。また最終的には番環境で動かせるようにnginx経由でwebsocketができるところまで持っていきます。 環境 以下の構成でやっていきます。 Python 3.6 Django 2.0.3 Django Channels 2

    Django 2.0 + Channels 2.xを使ってWebSocketを扱う(その1) - [Dd]enzow(ill)? with DB and Python
  • PythonでRedisを扱う(redis-pyの基本) - [Dd]enzow(ill)? with DB and Python

    先日、ISUCONの練習としてISHOCONに参加してきました。ISUCONもそうですが初期実装のRDBMS部分をどれだけRedis等に移せるかでスコアの伸び方が違う気がします。少なくとも今回の問題はRedisを上手に使えるかが鍵です(少なくともPythonでは しかし、イマイチRedisを触ったことがなかったのでまとめておきます。 Redis Wikipediaより Redisは、データ構造サーバーを実装するオープンソースソフトウェアプロジェクトである。 いわゆるNoSQLデータベースの一つであり、Redis Labsがスポンサーとなって開発されている。 ネットワーク接続されたインメモリデータベースでかつキー・バリュー型データベースであり、オプションとして永続性を持つ。 売りとしてはマスタスレーブだったりってのもありますが、1ノードなのでただのおっきなDictとして使い潰します。memc

    PythonでRedisを扱う(redis-pyの基本) - [Dd]enzow(ill)? with DB and Python
  • PythonでRedisを効率的に使う(redis-pyのパフォーマンスをあげるには) - [Dd]enzow(ill)? with DB and Python

    前回書いたようにISHOCONというプライベートなISUCONに出てきました。MySQLの思いクエリをRedisに変えることでスコアは伸びたのですが、Redis自体もプロセスローカルのメモリに比べると遅いのでできるだけ効率的な使い方を模索しました。いつになく記事が長くなってしまいました。 hiredis Pythonでredisを使うにはredis-pyを使います。これをいれるだけで使うことはできるのですが、パーサ部分をCで実装したHiredisを入れるとredis-py自体が高速化するので一緒に入れておくのがマストでしょう。(10倍くらい違うらしい) $ pip install hiredis hiredisをredis-pyの代わりに使うわけではなく、いれるとredis-pyが早くなるということだそうです。確かにhiredisが入ってるかどうかで動きが変わる部分がredis-pyにあり

    PythonでRedisを効率的に使う(redis-pyのパフォーマンスをあげるには) - [Dd]enzow(ill)? with DB and Python
  • 1