Node-redis: рд╣рд╛рдпрд░рд░рд┐рд╕ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдЬреБрд▓ре░ 2017  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: NodeRedis/node-redis

  • рд╕рдВрд╕реНрдХрд░рдг : 2.7.1
  • рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо : Node.js 8.1.3 / macOS 10.12.5
  • рд╡рд┐рд╡рд░рдг : рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдпрд╛рд░реНрди рдпрд╛ рдПрдирдкреАрдПрдо рдЗрдВрд╕реНрдЯреЙрд▓ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рд╡реЗрдмрдкреИрдХ рдмрд┐рд▓реНрдб рдмрдирд╛рддреЗ рд╕рдордп рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА
ERROR in ./node_modules/redis-parser/lib/hiredis.js
Module not found: Error: Can't resolve 'hiredis' in
error Command failed with exit code 2.

рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рдореНрди рд╣реИ:

var path = require('path')

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: ['babel-loader']
      }
    ]
  },
  target: 'node'
}

рдкреИрдХреЗрдЬ.рдЬреЗрд╕рди

{
  "version": "1.0.0",
  "main": "src/index.js",
  "license": "MIT",
  "dependencies": {
    "dotenv": "^4.0.0",
    "koa": "^2.3.0",
    "koa-bodyparser": "^4.2.0",
    "koa-router": "^7.2.1",
    "node-fetch": "^1.7.1",
    "redis": "^2.7.1"
  },
  "devDependencies": {
    "babel-cli": "^6.24.1",
    "babel-loader": "^7.1.1",
    "babel-plugin-transform-class-properties": "^6.24.1",
    "babel-plugin-transform-object-rest-spread": "^6.23.0",
    "babel-preset-env": "^1.5.2",
    "webpack": "^3.0.0"
  },
  "scripts": {
    "start": "node dist/bundle",
    "build": "webpack"
  },
  "babel": {
    "presets": [
      [
        "env",
        {
          "targets": {
            "node": "current"
          }
        }
      ]
    ],
    "plugins": [
      "transform-object-rest-spread",
      "transform-class-properties"
    ]
  }
}

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рджрд░рдЕрд╕рд▓, рдпрд╣ рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ redis-parser рдиреЗ hiredis рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ redis-parser 3.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 13 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рд╡реЗрдмрдкреИрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдиреЛрдбрдПрдХреНрд╕рдЯрд░реНрдирд▓ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

const nodeExternals = require('webpack-node-externals')

module.exports = {
  ...
  externals: [nodeExternals()],
  target: 'node'
}

nodeExternals рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдмрдВрдбрд▓рд┐рдВрдЧ рдкрд░ node_modules рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред

рдпрд╣ рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рджрд░рдЕрд╕рд▓, рдпрд╣ рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ redis-parser рдиреЗ hiredis рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ redis-parser 3.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

@guidobouman рд╣рдо рдиреЛрдб_рд░реЗрдбрд┐рд╕ рдХреЛ рдлреЛрд░реНрдХ рдХрд┐рдП рдмрд┐рдирд╛ рдФрд░ рдЙрд╕ рдПрдХрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдП рдмрд┐рдирд╛ redis-parser 3.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рд╣рдлреНрддреЛрдВ рд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВред

@guidobouman рдХреЛрдИ рднреА рд╡реИрдз JS рдХреЛрдб Webpack рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рджреБрдЦрдж рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛: рдореБрдЭреЗ рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреЛрдИ рд░реЗрдбрд┐рд╕ рдкрд░ рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛ред рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреЛрдб рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдирд╛ рдПрдХ рдмрд╣реБрдд рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

@peterschussheim рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдордп node_redis рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдмрд╣реБрдд рджреБрдЦрдж рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЗрд╡рд▓ рд░реЗрдбрд┐рд╕-рдкрд╛рд░реНрд╕рд░ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдПрдХ рд╕реЗрд╡рд░-рдкреНрд░рдореБрдЦ рдЯрдХреНрдХрд░ рд╣реЛрдЧреАред

@BridgeAR рджреЗрдЦреЗрдВ https://github.com/NodeRedis/node-redis-parser/pull/36

рдЧреБрдо рд╕рдВрджрд░реНрдн рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдорд╕реНрдпрд╛ рдереАред рднрд╛рдбрд╝реЗ рдХреЛ рд╣рдЯрд╛рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрд╕ рдмрдЧ рдХреЛ "рд╕рдВрдкрд╛рд░реНрд╢реНрд╡рд┐рдХ рдХреНрд╖рддрд┐" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдареАрдХ рдХрд░рддрд╛ рд╣реИред

рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдкрд░ рд╡реЗрдмрдкреИрдХ рдХреНрдпреЛрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛: рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдиреЛрдб рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдХреЛрдИ рдЖрдпрд╛рдд рдЬреИрд╕реЗ рдЖрдзреБрдирд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред (https://github.com/serverless-heaven/serverless-webpack)

@peterschussheim рдореБрдЭреЗ redis-parser рдореЗрдВ node-redis рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЯрдХреНрдХрд░ рджреЗрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ: hiredis рд╕реНрд╡рдпрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рднрд▓реЗ рд╣реА рдЖрдк рд╢рд╛рдпрдж hiredis рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, redis-parser рдЗрд╕рдХреЗ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИред

рджрд░рдЕрд╕рд▓, @BridgeAR : рдпрд╣ рдПрдХ рдкреИрдЪ рд╕рдВрд╕реНрдХрд░рдг рдЯрдХреНрдХрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрдЧрдлрд┐рдХреНрд╕ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд╛рдБ, рдпрд╣ Node рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ 4 рд╕реЗ рдиреАрдЪреЗ рдЧрд┐рд░рд╛ рджреЗрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ рдХрд╛рдлреА рд╕рдордп рд╕реЗ EOL рд░рд╣реЗ рд╣реЛрдВред

@guidobouman рдЙрд╕ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ 'рд╣реИрдХ' рд╣реИ, рдореИрдВ рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдкрд╣рд▓реЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рд╢рд╛рдпрдж рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╛ рд╕рдореБрджрд╛рдп рдХреЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП 'рдЖрдзреБрдирд┐рдХ' рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрд╡рд╕рд░ рд╣реИ (рдмрд╣реБрдд, рдмрд╣реБрдд рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рд╣рдо рдиреЛрдб 4 рд╕рдорд░реНрдерди рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рд╕реЗ рджреВрд░ рд╣реИрдВ)ред

рдореИрдВ

рдХреНрдпрд╛ рдХреЛрдИ рдХреГрдкрдпрд╛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдореБрдЭреЗ рдЕрднреА рднреА рдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ hiredis рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдЕрдиреНрдп рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдмрд╕ hiredis рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд╛рд░реНрд╕рд░ hiredis рдирд╣реАрдВ рд╣реИред рдореИрдВ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ hiredis рдХреА рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рдмрдВрдбрд▓ рдХрд░рддреЗ рд╕рдордп рд╡реЗрдмрдкреИрдХ рдмреБрд░реА рддрд░рд╣ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рд╕рднреА рд╕рдорд╛рдпреЛрдЬрдиреЛрдВ рдХреЗ рдмрд╛рдж (рд▓рдХреНрд╖реНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди: 'рдиреЛрдб' рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ 'рд╣рд┐рд░реЗрдбрд┐рд╕' рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ), рдлрд┐рд░ рднреА рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ
рдмрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ред рдЬрдм рдореИрдВ рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рд░реЗрдбрд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ "рдЕрдирдХреЙрдЯ рд░реЗрдлрд░реЗрдВрд╕ рдПрд░рд░: рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА" рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рд╛рдпрд░рдбрд┐рд╕ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдиреЛрдб 12 рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рд╣реИ, рд░реЗрдбрд┐рд╕-рдкрд╛рд░реНрд╕рд░ рдЗрд╕реЗ v3.0.0 рдкрд░ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдкреИрдХреЗрдЬ рдЕрднреА рднреА v2.6.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░реНрд╕рд▓рдЬ рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рднреА рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ:

parcel build src/index.ts --bundle-node-modules --target node --no-source-maps --no-minify

рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдмрдВрдбрд▓ рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ (рдкреЗрдбрд╝ рдХрд╛рдВрдкрдирд╛, рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди, рдЖрджрд┐)ред рдиреНрдпреВрдирддрдореАрдХрд░рдг рдпрд╛ рдирд╣реАрдВ, рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рд╣рдо рдЕрднреА рдХреЗ рд▓рд┐рдП npm install рдФрд░ рдкреВрд░реНрдг рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рдмрдиреЗ рд░рд╣реЗрдВрдЧреЗред

Hiredis рдкрд░рд┐рддреНрдпрд╛рдЧ рдирд╣реАрдВ рд╣реИ (рдЕрдВрддрд┐рдо PR 10 рджрд┐рди рдкрд╣рд▓реЗ рдерд╛)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ 3.0 рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ @sookoll рдХрд╛ рдордиреЛрд░рдВрдЬрди рдХрд░реВрдВрдЧрд╛ред

Hiredis рдкрд░рд┐рддреНрдпрд╛рдЧ рдирд╣реАрдВ рд╣реИ (рдЕрдВрддрд┐рдо PR 10 рджрд┐рди рдкрд╣рд▓реЗ рдерд╛)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ 3.0 рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ @sookoll рдХрд╛ рдордиреЛрд░рдВрдЬрди рдХрд░реВрдВрдЧрд╛ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░рд╛ рдорддрд▓рдм рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рд╛рдпрд░рд░рд┐рд╕-рдиреЛрдб рд╣реИред рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдХреЛрдИ рдпрд╣рд╛рдВ рдиреЛрдб рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗ рдмрд╛рд╣рд░ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

michaelwittig picture michaelwittig  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

strumwolf picture strumwolf  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dotSlashLu picture dotSlashLu  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Atala picture Atala  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ