--- !ruby/object:Gem::Specification name: redis-key_hash version: !ruby/object:Gem::Version version: 0.0.2 platform: ruby authors: - jhwillett autorequire: bindir: bin cert_chain: [] date: 2017-08-29 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: bundler requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.14' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.14' - !ruby/object:Gem::Dependency name: rake requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '10.5' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '10.5' - !ruby/object:Gem::Dependency name: minitest requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '5.10' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '5.10' description: |2 redis-key_hash provides tests of key hash slot agreement for use with Redis Cluster and RedisLabs Enterprise Cluster. Redis Cluster (RC) and RedisLabs Enterprise Cluster (RLEC) both require that all keys in multi-key operations hash to the same node. They use slightly different default hashing algorithms and RLEC offers customizable hash pattersn. It is impossible to predict which nodes will host each shard, and difficult to predict which slot will host each key. But it is easy to identify the key hash tag which RC or RLEC will use to select a shard. Where key hash tags agree, we can be certain that slots and nodes will also agree - even if hash tag disagreement does not always imply slot or node disagreement. By pulling this check into Ruby we can arrange to fail fast, before sending a command to Redis which is at risk of CROSSLOT failure. We can also validate key management schemes in unit tests which run without support services or with a non-sharded Redis. email: - jhw@prosperworks.com executables: [] extensions: [] extra_rdoc_files: [] files: - ".gitignore" - ".travis.yml" - Gemfile - LICENSE - README.md - Rakefile - bin/console - bin/setup - lib/redis/impending_cross_slot_error.rb - lib/redis/key_hash.rb - lib/redis/key_hash/version.rb - redis-key_hash.gemspec homepage: https://github.com/ProsperWorks/redis-key_hash licenses: - MIT metadata: {} post_install_message: rdoc_options: [] require_paths: - lib required_ruby_version: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '2.0' required_rubygems_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' requirements: [] rubyforge_project: rubygems_version: 2.4.8 signing_key: specification_version: 4 summary: Tests Redis Cluster key hash slot agreement test_files: []