本文整理汇总了C#中Aerospike.Client.WritePolicy类的典型用法代码示例。如果您正苦于以下问题:C# WritePolicy类的具体用法?C# WritePolicy怎么用?C# WritePolicy使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
WritePolicy类属于Aerospike.Client命名空间,在下文中一共展示了WritePolicy类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LargeList
/// <summary>
/// Initialize large list operator.
/// </summary>
/// <param name="client">client</param>
/// <param name="policy">generic configuration parameters, pass in null for defaults</param>
/// <param name="key">unique record identifier</param>
/// <param name="binName">bin name</param>
public LargeList(AerospikeClient client, WritePolicy policy, Key key, string binName)
{
this.client = client;
this.policy = policy;
this.key = key;
this.binName = Value.Get(binName);
}
示例2: Replace
public void Replace()
{
Key key = new Key(args.ns, args.set, "replacekey");
Bin bin1 = new Bin("bin1", "value1");
Bin bin2 = new Bin("bin2", "value2");
Bin bin3 = new Bin("bin3", "value3");
client.Put(null, key, bin1, bin2);
WritePolicy policy = new WritePolicy();
policy.recordExistsAction = RecordExistsAction.REPLACE;
client.Put(policy, key, bin3);
Record record = client.Get(null, key);
AssertRecordFound(key, record);
if (record.GetValue(bin1.name) != null)
{
Assert.Fail(bin1.name + " found when it should have been deleted.");
}
if (record.GetValue(bin2.name) != null)
{
Assert.Fail(bin2.name + " found when it should have been deleted.");
}
AssertBinEqual(key, record, bin3);
}
示例3: Main
public static void Main(string[] args)
{
var client = Connect();
var policy = new Policy();
var writePolicy = new WritePolicy();
var batchPolicy = new BatchPolicy();
//NOTE: adjust the timeout value depending on your demo machine
writePolicy.timeout = 1000;
var key = new Key("test", "myset", "mykey");
WriteSingleValue(client, writePolicy, key);
CheckKeyExists(client, policy, key);
AddSingleValue(client, writePolicy);
WriteMultipleValues(client, writePolicy, key);
WriteValueWithTtl(client);
ReadAllValuesForKey(client, policy, key);
ReadSomeValuesForKey(client, policy, key);
DeleteValue(client, writePolicy, key);
DeleteRecord(client, writePolicy, key);
AddRecords(client, writePolicy);
BatchReadRecords(client, batchPolicy);
MultiOps(client, writePolicy, key);
client.Close();
}
示例4: LargeSet
/// <summary>
/// Initialize large set operator.
/// </summary>
/// <param name="client">client</param>
/// <param name="policy">generic configuration parameters, pass in null for defaults</param>
/// <param name="key">unique record identifier</param>
/// <param name="binName">bin name</param>
/// <param name="createModule">Lua function name that initializes list configuration parameters, pass null for default set</param>
public LargeSet(AerospikeClient client, WritePolicy policy, Key key, string binName, string createModule)
{
this.client = client;
this.policy = policy;
this.key = key;
this.binName = Value.Get(binName);
this.createModule = Value.Get(createModule);
}
示例5: ExecuteCommand
public ExecuteCommand(Cluster cluster, WritePolicy writePolicy, Key key, string packageName, string functionName, Value[] args)
: base(cluster, writePolicy, key, null)
{
this.writePolicy = writePolicy;
this.packageName = packageName;
this.functionName = functionName;
this.args = args;
}
示例6: AddSingleValue
private static void AddSingleValue(AerospikeClient client,
WritePolicy writePolicy)
{
var newKey = new Key("test", "myAddSet", "myAddKey");
var counter = new Bin("mybin", 1);
client.Add(writePolicy, newKey, counter);
Console.WriteLine("Wrote this additional value (or bin): " + newKey);
Console.WriteLine("");
}
示例7: AsyncExecute
public AsyncExecute(AsyncCluster cluster, WritePolicy writePolicy, ExecuteListener listener, Key key, string packageName, string functionName, Value[] args)
: base(cluster, writePolicy, null, key, null)
{
this.writePolicy = writePolicy;
this.executeListener = listener;
this.packageName = packageName;
this.functionName = functionName;
this.args = args;
}
示例8: Program
public Program(AerospikeClient c)
{
this.client = c;
this.epoch = DateTime.Now;
this.updatePolicy = new WritePolicy ();
this.updatePolicy.generationPolicy = GenerationPolicy.EXPECT_GEN_EQUAL;
this.updatePolicy.recordExistsAction = RecordExistsAction.UPDATE_ONLY;
this.createPolicy = new WritePolicy ();
this.createPolicy.recordExistsAction = RecordExistsAction.CREATE_ONLY;
}
示例9: AddRecords
private static void AddRecords(AerospikeClient client,
WritePolicy writePolicy)
{
const int size = 1024;
for (var i = 0; i < size; i++)
{
var key = new Key("test", "myset", (i + 1));
client.Put(writePolicy, key, new Bin("dots", i + " dots"));
}
Console.WriteLine("Added " + size + " Records");
Console.WriteLine("");
}
示例10: RunExample
/// <summary>
/// Demonstrate touch command.
/// </summary>
public override void RunExample(AerospikeClient client, Arguments args)
{
Key key = new Key(args.ns, args.set, "touchkey");
Bin bin = new Bin(args.GetBinName("touchbin"), "touchvalue");
console.Info("Create record with 2 second expiration.");
WritePolicy writePolicy = new WritePolicy();
writePolicy.expiration = 2;
client.Put(writePolicy, key, bin);
console.Info("Touch same record with 5 second expiration.");
writePolicy.expiration = 5;
Record record = client.Operate(writePolicy, key, Operation.Touch(), Operation.GetHeader());
if (record == null)
{
throw new Exception(string.Format("Failed to get: namespace={0} set={1} key={2} bin={3} value={4}",
key.ns, key.setName, key.userKey, bin.name, null));
}
if (record.expiration == 0)
{
throw new Exception(string.Format("Failed to get record expiration: namespace={0} set={1} key={2}",
key.ns, key.setName, key.userKey));
}
console.Info("Sleep 3 seconds.");
Thread.Sleep(3000);
record = client.Get(args.policy, key, bin.name);
if (record == null)
{
throw new Exception(string.Format("Failed to get: namespace={0} set={1} key={2}",
key.ns, key.setName, key.userKey));
}
console.Info("Success. Record still exists.");
console.Info("Sleep 4 seconds.");
Thread.Sleep(4000);
record = client.Get(args.policy, key, bin.name);
if (record == null)
{
console.Info("Success. Record expired as expected.");
}
else
{
console.Error("Found record when it should have expired.");
}
}
示例11: WriteRecords
public static void WriteRecords(TestContext testContext)
{
WritePolicy policy = new WritePolicy();
policy.expiration = 2592000;
for (int i = 1; i <= size; i++)
{
Key key = new Key(args.ns, args.set, keyPrefix + i);
Bin bin = new Bin(binName, valuePrefix + i);
client.Put(policy, key, bin);
}
}
示例12: RunExample
/// <summary>
/// Write and twice read a bin value, demonstrating record expiration.
/// </summary>
public override void RunExample(AerospikeClient client, Arguments args)
{
Key key = new Key(args.ns, args.set, "expirekey");
Bin bin = new Bin(args.GetBinName("expirebin"), "expirevalue");
console.Info("Put: namespace={0} set={1} key={2} bin={3} value={4} expiration=2",
key.ns, key.setName, key.userKey, bin.name, bin.value);
// Specify that record expires 2 seconds after it's written.
WritePolicy writePolicy = new WritePolicy();
writePolicy.expiration = 2;
client.Put(writePolicy, key, bin);
// Read the record before it expires, showing it's there.
console.Info("Get: namespace={0} set={1} key={2}", key.ns, key.setName, key.userKey);
Record record = client.Get(args.policy, key, bin.name);
if (record == null)
{
throw new Exception(string.Format("Failed to get: namespace={0} set={1} key={2}",
key.ns, key.setName, key.userKey));
}
object received = record.GetValue(bin.name);
string expected = bin.value.ToString();
if (received.Equals(expected))
{
console.Info("Get successful: namespace={0} set={1} key={2} bin={3} value={4}",
key.ns, key.setName, key.userKey, bin.name, received);
}
else
{
throw new Exception(string.Format("Expire mismatch: Expected {0}. Received {1}.", expected, received));
}
// Read the record after it expires, showing it's gone.
console.Info("Sleeping for 3 seconds ...");
Thread.Sleep(3 * 1000);
record = client.Get(args.policy, key, bin.name);
if (record == null)
{
console.Info("Expiry successful. Record not found.");
}
else
{
console.Error("Found record when it should have expired.");
}
}
示例13: createTweet
public void createTweet()
{
Console.WriteLine("\n********** Create Tweet **********\n");
Record userRecord = null;
Key userKey = null;
Key tweetKey = null;
// Get username
string username;
Console.WriteLine("\nEnter username:");
username = Console.ReadLine();
if (username != null && username.Length > 0)
{
// Check if username exists
userKey = new Key("test", "users", username);
userRecord = client.Get(null, userKey);
if (userRecord != null)
{
int nextTweetCount = int.Parse(userRecord.GetValue("tweetcount").ToString()) + 1;
// Get tweet
string tweet;
Console.WriteLine("Enter tweet for " + username + ":");
tweet = Console.ReadLine();
// Write record
WritePolicy wPolicy = new WritePolicy();
wPolicy.recordExistsAction = RecordExistsAction.UPDATE;
// Create timestamp to store along with the tweet so we can query, index and report on it
long ts = getTimeStamp();
tweetKey = new Key("test", "tweets", username + ":" + nextTweetCount);
Bin bin1 = new Bin("tweet", tweet);
Bin bin2 = new Bin("ts", ts);
Bin bin3 = new Bin("username", username);
client.Put(wPolicy, tweetKey, bin1, bin2, bin3);
Console.WriteLine("\nINFO: Tweet record created!");
// Update tweet count and last tweet'd timestamp in the user record
updateUser(client, userKey, wPolicy, ts, nextTweetCount);
}
else
{
Console.WriteLine("ERROR: User record not found!");
}
}
}
示例14: Generation
public void Generation()
{
Key key = new Key(args.ns, args.set, "genkey");
string binName = args.GetBinName("genbin");
// Delete record if it already exists.
client.Delete(null, key);
// Set some values for the same record.
Bin bin = new Bin(binName, "genvalue1");
client.Put(null, key, bin);
bin = new Bin(binName, "genvalue2");
client.Put(null, key, bin);
// Retrieve record and its generation count.
Record record = client.Get(null, key, bin.name);
AssertBinEqual(key, record, bin);
// Set record and fail if it's not the expected generation.
bin = new Bin(binName, "genvalue3");
WritePolicy writePolicy = new WritePolicy();
writePolicy.generationPolicy = GenerationPolicy.EXPECT_GEN_EQUAL;
writePolicy.generation = record.generation;
client.Put(writePolicy, key, bin);
// Set record with invalid generation and check results .
bin = new Bin(binName, "genvalue4");
writePolicy.generation = 9999;
try
{
client.Put(writePolicy, key, bin);
Assert.Fail("Should have received generation error instead of success.");
}
catch (AerospikeException ae)
{
if (ae.Result != ResultCode.GENERATION_ERROR)
{
Assert.Fail("Unexpected return code: namespace=" + key.ns + " set=" + key.setName + " key=" + key.userKey + " bin=" + bin.name + " value=" + bin.value + " code=" + ae.Result);
}
}
// Verify results.
record = client.Get(null, key, bin.name);
AssertBinEqual(key, record, bin.name, "genvalue3");
}
示例15: WriteRecord
protected override void WriteRecord(WritePolicy policy, Key key, Bin bin)
{
if (shared.writeLatency != null)
{
Stopwatch watch = Stopwatch.StartNew();
client.Put(policy, key, bin);
double elapsed = watch.Elapsed.TotalMilliseconds;
OnWriteSuccess(elapsed);
}
else
{
client.Put(policy, key, bin);
OnWriteSuccess();
}
}