Ejemplo n.º 1
0
$inclusive = False;
$slice = new ColumnSlice('', array(1, array("c", $inclusive)));
$columns = $cf->get($key1, $slice);
foreach ($columns as $column) {
    list($name, $value) = $column;
    echo "{$value}, ";
}
echo "\n\n";
// Fetch everything between 0 and 2, exclusive on both ends
$slice = new ColumnSlice($start = array(array(0, False)), $end = array(array(2, False)));
$columns = $cf->get($key1, $slice);
foreach ($columns as $column) {
    list($name, $value) = $column;
    echo "{$value}, ";
}
echo "\n\n";
// Do the same thing in reverse
$slice = new ColumnSlice($start = array(array(2, False)), $end = array(array(0, False)), $count = 10, $reversed = True);
$columns = $cf->get($key1, $slice);
foreach ($columns as $column) {
    list($name, $value) = $column;
    echo "{$value}, ";
}
echo "\n\n";
// Clear out the column family
$cf->truncate();
// Destroy our schema
$sys->drop_keyspace("Keyspace1");
// Close our connections
$pool->close();
$sys->close();
Ejemplo n.º 2
0
$sys->create_keyspace('Keyspace1', array("strategy_class" => StrategyClass::SIMPLE_STRATEGY, "strategy_options" => array('replication_factor' => '1')));
$sys->create_column_family('Keyspace1', 'Users');
// Start a connection pool, create our ColumnFamily instance
$pool = new ConnectionPool('Keyspace1', array('127.0.0.1'));
$users = new ColumnFamily($pool, 'Users');
// Insert a few records
$users->insert('user0', array("name" => "joe", "state" => "TX"));
$users->insert('user1', array("name" => "bob", "state" => "CA"));
// Fetch a user record
$user = $users->get('user0');
$name = $user["name"];
echo "Fetched user {$name}\n";
// Fetch both at once
$both = $users->multiget(array('user0', 'user1'));
foreach ($both as $user_id => $columns) {
    echo "{$user_id} state: " . $columns["state"] . "\n";
}
// Only fetch the name of user1
$columns = $users->get('user1', $column_slice = null, $column_names = array("name"));
echo "Name is " . $columns["name"] . "\n";
// Insert two more records at once
$users->batch_insert(array("user3" => array("name" => "kat"), "user4" => array("name" => "tom")));
// Remove the last row
$users->remove("user4");
// Clear out the column family
$users->truncate();
// Destroy our schema
$sys->drop_keyspace("Keyspace1");
// Close our connections
$pool->close();
$sys->close();
Ejemplo n.º 3
0
 public function test_get_indexed_slices()
 {
     $this->require_opp();
     $indexed_cf = new ColumnFamily($this->pool, 'Indexed1');
     $indexed_cf->truncate();
     $columns = array('birthdate' => 1);
     foreach (range(1, 3) as $i) {
         $indexed_cf->insert('key' . $i, $columns);
     }
     $expr = new IndexExpression($column_name = 'birthdate', $value = 1);
     $clause = new IndexClause(array($expr), 10000);
     $result = $indexed_cf->get_indexed_slices($clause);
     $count = 0;
     foreach ($result as $key => $cols) {
         $count++;
         $this->assertEquals($columns, $cols);
         $this->assertEquals($key, "key{$count}");
     }
     $this->assertEquals($count, 3);
     # Insert and remove a matching row at the beginning
     $indexed_cf->insert('key0', $columns);
     $indexed_cf->remove('key0');
     # Insert and remove a matching row at the end
     $indexed_cf->insert('key4', $columns);
     $indexed_cf->remove('key4');
     # Remove a matching row from the middle
     $indexed_cf->remove('key2');
     $result = $indexed_cf->get_indexed_slices($clause);
     $count = 0;
     foreach ($result as $key => $cols) {
         $count++;
         $this->assertContains($key, array("key1", "key3"));
     }
     $this->assertEquals($count, 2);
     $indexed_cf->truncate();
     $keys = array();
     foreach (range(1, 1000) as $i) {
         $indexed_cf->insert("key{$i}", $columns);
         if ($i % 50 != 0) {
             $indexed_cf->remove("key{$i}");
         } else {
             $keys[] = "key{$i}";
         }
     }
     $count = 0;
     foreach ($result as $key => $cols) {
         $count++;
         $this->assertContains($key, $keys);
         unset($keys[$key]);
     }
     $this->assertEquals($count, 20);
     $indexed_cf->truncate();
 }
 /**
  * Remove all items from the cache.
  *
  * @return void
  */
 public function flush()
 {
     $this->columnFamily->truncate();
 }
Ejemplo n.º 5
0
    $log = $logs[0];
    $uuid = $log->name;
    $message = $log->value;
    $timestamp = $log->timestamp;
    $ttl = $log->ttl;
    echo "Most recent log for {$user_id}:\n";
    echo "    " . $uuid->time . ": " . $message . "\n";
    echo "    timestamp: {$timestamp}, ttl: {$ttl}\n";
}
echo "\n";
// Fetch the first column for each row in the CF:
$slice = new ColumnSlice('', '', $count = 1);
foreach ($user_logs->get_range('', '', 10, $slice) as $row) {
    list($user_id, $logs) = $row;
    $log = $logs[0];
    $uuid = $log->name;
    $message = $log->value;
    $timestamp = $log->timestamp;
    $ttl = $log->ttl;
    echo "First log for {$user_id}:\n";
    echo "    " . $uuid->time . ": " . $message . "\n";
    echo "    timestamp: {$timestamp}, ttl: {$ttl}\n";
}
echo "\n";
// Clear out the column family
$user_logs->truncate();
// Destroy our schema
$sys->drop_keyspace("Keyspace1");
// Close our connections
$pool->close();
$sys->close();