examples/expire.rb
def no_expire_example(client)
  key = Key.new(Shared.namespace, Shared.set_name, "expirekey")
  bin = Bin.new("expirebin", "noexpirevalue")

  Shared.logger.info("Put: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key} bin=#{bin.name} value=#{bin.value} ttl=NeverExpire")

  # Specify that record NEVER expires.
  write_policy = WritePolicy.new
  write_policy.generation = 2
  write_policy.ttl = Aerospike::TTL::NEVER_EXPIRE
  client.put(key, [bin], write_policy)

  # Read the record, showing it is there.
  Shared.logger.info("Get: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key}")

  record = client.get(key, [bin.name], Shared.policy)

  if record.nil?
    Shared.logger.fatal("Failed to get record: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key}")
    exit
  end

  received = record.bins[bin.name]
  expected = bin.value
  if received == expected
    Shared.logger.info("Get record successful: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key} bin=#{bin.name} value=#{received}")
  else
    Shared.logger.fatal("Expire record mismatch: Expected #{expected}. Received #{received}.")
    exit
  end

  # Read this Record after the Default Expiration, showing it is still there.
  # We should have set the Namespace TTL at 5 sec.
  Shared.logger.info("Sleeping for 10 seconds ...")
  sleep(10)

  record = client.get(key, [bin.name], Shared.policy)

  if record.nil?
    Shared.logger.fatal("Record expired and should NOT have.")
    exit
  else
    Shared.logger.info("Found Record (correctly) after default TTL.")
  end
end
#
# Write and twice read a non-expiring tuple using the new "NoExpire" value (-1).
# This example is most effective when the Default Namespace Time To Live (TTL)
# is set to a small value, such as 5 seconds.  When we sleep beyond that
# time, we show that the NoExpire TTL flag actually works.
#
Write and twice read a non-expiring tuple using the new "NoExpire" value (-1).
This example is most effective when the Default Namespace Time To Live (TTL)
is set to a small value, such as 5 seconds.  When we sleep beyond that
time, we show that the NoExpire TTL flag actually works.
Write and twice read a non - expiring tuple using the new " NoExpire " value ( - 1 ) . This example is most effective when the Default Namespace Time To Live ( TTL ) is set to a small value such as 5 seconds . When we sleep beyond that time we show that the NoExpire TTL flag actually works .
def no_expire_example(client)
  key = Key.new(Shared.namespace, Shared.set_name, "expirekey")
  bin = Bin.new("expirebin", "noexpirevalue")
  Shared.logger.info("Put: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key} bin=#{bin.name} value=#{bin.value} ttl=NeverExpire")
  write_policy = WritePolicy.new
  write_policy.generation = 2
  write_policy.ttl = Aerospike::TTL::NEVER_EXPIRE
  client.put(key, [bin], write_policy)
  Shared.logger.info("Get: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key}")
  record = client.get(key, [bin.name], Shared.policy)
  if record.nil?
    Shared.logger.fatal("Failed to get record: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key}")
    exit
  end
  received = record.bins[bin.name]
  expected = bin.value
  if received == expected
    Shared.logger.info("Get record successful: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key} bin=#{bin.name} value=#{received}")
  else
    Shared.logger.fatal("Expire record mismatch: Expected #{expected}. Received #{received}.")
    exit
  end
  Shared.logger.info("Sleeping for 10 seconds ...")
  sleep(10)
  record = client.get(key, [bin.name], Shared.policy)
  if record.nil?
    Shared.logger.fatal("Record expired and should NOT have.")
    exit
  else
    Shared.logger.info("Found Record (correctly) after default TTL.")
  end
end
def no_expire_example ( client ) key = Key . new ( Shared . namespace , Shared . set_name , "expirekey" ) bin = Bin . new ( "expirebin" , "noexpirevalue" ) Shared . logger . info ( "Put: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key} bin=#{bin.name} value=#{bin.value} ttl=NeverExpire" ) write_policy = WritePolicy . new write_policy . generation = 2 write_policy . ttl = Aerospike :: TTL :: NEVER_EXPIRE client . put ( key , [ bin ] , write_policy ) Shared . logger . info ( "Get: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key}" ) record = client . get ( key , [ bin . name ] , Shared . policy ) if record . nil? Shared . logger . fatal ( "Failed to get record: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key}" ) exit end received = record . bins [ bin . name ] expected = bin . value if received == expected Shared . logger . info ( "Get record successful: namespace=#{key.namespace} set=#{key.set_name} key=#{key.user_key} bin=#{bin.name} value=#{received}" ) else Shared . logger . fatal ( "Expire record mismatch: Expected #{expected}. Received #{received}." ) exit end Shared . logger . info ( "Sleeping for 10 seconds ..." ) sleep ( 10 ) record = client . get ( key , [ bin . name ] , Shared . policy ) if record . nil? Shared . logger . fatal ( "Record expired and should NOT have." ) exit else Shared . logger . info ( "Found Record (correctly) after default TTL." ) end end
Write and twice read a non-expiring tuple using the new "NoExpire" value (-1).
Write and twice read a non - expiring tuple using the new " NoExpire " value ( - 1 ) .
# Specify that record NEVER expires. # Read the record, showing it is there. # Read this Record after the Default Expiration, showing it is still there. # We should have set the Namespace TTL at 5 sec.
client