Sha256: b361cb3e855cd8c4e0ec2b61921123f8bff81b842e23832d99789724f211fe04

Contents?: true

Size: 341 Bytes

Versions: 2

Compression:

Stored size: 341 Bytes

Contents

module RedisCluster

  class Slot
    KEY_PATTERN = /\{([^\}]*)\}/

    # key "{xxx}ooo" will calculate "xxx" for slot
    # if key is "{}dddd", calculate "{}dddd" for slot
    def self.slot_by(key)
      KEY_PATTERN =~ key
      key = $1 if $1 && !$1.empty?
      CRC16.crc16(key) % Configuration::HASH_SLOTS
    end

  end # end Slot

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
redis_cluster-0.1.7 lib/redis_cluster/slot.rb
redis_cluster-0.1.6 lib/redis_cluster/slot.rb