code: func checkCrossSlot(tx *Txn) bool {
  	var hashSlot uint16
  	var key string
  
  	for _, op := range tx.ops {
  		if hashSlot == 0 {
  			hashSlot = getHashSlot(op.key)
  			key = op.key
  		} else {
  			slot := getHashSlot(op.key)
  			if slot != hashSlot {
  				tx.db.Warnf("%T: Found CROSS SLOT keys (%s, %d) and (%s, %d)",
  					*tx, key, hashSlot, op.key, slot)
  				return true
  			}
  		}
  	}
  	return false
  }
docs: // CROSSSLOT Keys in request don't hash to the same slot
  // https://stackoverflow.com/questions/38042629/redis-cross-slot-error
  // https://redis.io/topics/cluster-spec#keys-hash-tags
  // https://redis.io/topics/cluster-tutorial
  // "Redis Cluster supports multiple key operations as long as all the keys involved into a single
  // command execution (or whole transaction, or Lua script execution) all belong to the same hash
  // slot. The user can force multiple keys to be part of the same hash slot by using a concept
  // called hash tags."