Cassandra can be installed on many systems. I installed it on Windows Server 2008 R2. The installation is quite simple. You just need to extract the downloaded compressed package to a directory, here we will mainly record the user experience:
Cassandra Official Website: http://cassandra.apache.org/, download page http://cassandra.apache.org/download/
Cassandra is developed in Java and requires JVM 1.6 or above. We recommend version 6 Update 23 to download idea from the Java official website:
- Java_home: C: \ Program Files \ Java \ jre6
- Cassandra_home: Check that you extract to that location to write that, My is D: \ apache-cassandra-0.7.0-rc4 \
Run Cassandra. bat in the bin of Cassandra to start it, which is probably like this:
On Windows, Cassandra does not know how to set it to run in the Windows service mode, so it opens another command line to operate.
You can use nodetool. BAT to confirm whether Cassandra is running again.
Because there is only one node, you don't need to configure anything. You can simply use the default keyspace. Cassandra provides a tool called Cassandra CLI that can directly input commands, run cassadnra-cli.bat. Let's take a look at this. The Common commands of Cassandra CLI include set get show count, set and get for example, and quit/exit is to leave Cassandra CLI, you can also use help to query available commands, remember to run the cassandra-cli.bat to add a parameter -- host to specify the location of Cassandra node, or else it will play.
Then, we can refer to the example provided in the readme.txt file for testing. Cassandra 0.7.0 RC3 does not have the default keyspace (ex: keyspace1), which must be created before use.The syntax of set is roughly as follows:
01. Set keyspace1.standard1 ['geffzhang '] ['blog'] = 'HTTP: // www.dotnetting.cn'
02 .\\\\\
03. \\\_ key \\_ Value
04. \ _ Column
05. \ _ keyspace \ _ column family
Add a few pieces of data according to the above syntax, and then use get to pull the data.
Cassandra is designed to support thrift, which means we can use multiple languages for development. For Cassandra development itself, this is the benefit of using thrift: multi-language support. The downside is that thrift APIs are too simple to be used in a production environment.
Cassandra recommends that youProgramIn C #, such as fluentcassandra or Aquiles. However, you can also use the official minimum-level API-thrift to communicate with Cassandra.
Thrift is the simplest API provided by Cassandra. This file is included in Apache-Cassandra-0.5.1. It can be used directly. We can also install Thrift on our own and then generate it automatically through the Cassandra. Thrift file. If you want to use Cassandra, you must understand thrift API. After all, all other more advanced APIs are packaged based on this.
Step 1: Download Thrift
To thrift download page get the latest stable release, for me, that isThrift-0.5.0.tar.gz(Use for making thrift. dll) andThrift compiler for Windows (thrift-0.5.0.exe)(For making Apache. Cassandra. dll ).
Step 2: gnerate thrift DLL
UnzipThrift-0.5.0.tar.gz(Or new version), findThrift. csproj (or thrift. sln)In \ thrift \ Lib \ CSHARP \ SRC \
In Visual Studio, right click on [thrift]-> [Build], then you will getThrift. dllIn \ bin \ debug \ (if no error)
Step 3: Generate Apache. Cassandra DLL
CopyThrift compiler for Windows (thrift-0.5.0.exe)To Cassandra Folder \ interface \, execute following command
Thrift-0.5.0.exe -- Gen CSHARP Cassandra. Thrift
In principle, it shoshould be generate a new folder called"Gen-CSHARP", But dunno why, I had an error when I running it with version 0.6.8, So I change Cassandra version to 0.7.0 RC3, then it passed.
After get C # source code, using Visual Studio create a newClass libaryProject, then add all files in gen-CSHARP \ apache \ Cassandra \ Folder. Now build the project, maybe you will got 19 ~ 26 error, but don't worry, just some word-casing problem, do some upper case job can fixed it.
(Ex:. Count->. Count)
Step 4: Connecting Cassandra with C #
Add thrift. dll and Apache. Cassandra. DLL to your refence, you can use Windows Forms/console application/Web application/or other, it doesn' t matter.
UsingSystem;
UsingSystem. Collections. Generic;
UsingSystem. LINQ;
UsingSystem. text;
UsingApache. Cassandra;
UsingThrift. Transport;
UsingThrift. Protocol;
NamespaceCassandra_console
{
ClassProgram
{
Static VoidMain (String[] ARGs)
{
TTransport frametransport =NewTframedtransport (NewTsocket ("Localhost", 9160 ));
Tprotocol protocol =NewTbinaryprotocol (transport );
Tprotocol frameprotocol =NewTbinaryprotocol (frametransport );
Cassandra. Client client =NewCassandra. Client (frameprotocol, frameprotocol );
Frametransport. open ();
Console. writeline ("Opening connection");
// For 0.7.0, need select keyspace at first
Client. set_keyspace ("Keyspace1");
Console. writeline ("Keyspace set to keyspace1");
System. Text. Encoding utf8encoding = system. Text. encoding. utf8;
LongTimestamp = datetime. Now. millisecond;
Columnpath namecolumnpath =NewColumnpath ()
{
Column_family ="Standard2",
Column = utf8encoding. getbytes ("Name")
};
Columnparent namecolumnparent =NewColumnparent ()
{
Column_family ="Standard2"
};
Column namecolume =NewColumn ()
{
Name = utf8encoding. getbytes ("Name"),
Value = utf8encoding. getbytes ("Geff Zhang"),
Timestamp = Timestamp
};
Console. writeline ("Inserting name columns");
// Insert data
Client. insert (utf8encoding. getbytes ("Geff"),
Namecolumnparent,
Namecolume,
Consistencylevel. One );
// Using the key to get column 'name'
Columnorsupercolumn returnedcolumn = client. Get (utf8encoding. getbytes ("Geff"), Namecolumnpath, consistencylevel. One );
Console. writeline ("Column data in keyspace1/standard1: Name: {0}, value: {1 }",
Utf8encoding. getstring (returnedcolumn. Column. Name ),
Utf8encoding. getstring (returnedcolumn. Column. Value ));
Console. writeline ("Closing connection");
Frametransport. Close ();
Console. Readline ();
}
}
}