- 浏览: 414580 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tanmingjuntan:
这到底是上传还是下载呀。每个方法都是down开头
java多线程分块上传并支持断点续传最新修正完整版本 -
sinnk:
多谢搂主分享,我有收获!!
Spring注解@Component、@Repository、@Service、@Controller区别 -
果果啊啊:
jar包呢
spring 3.0.5 + jotm 实现的的spring mvc 的例子 -
SeaAndHill:
真实的社会
房产寓言 -
java小叶檀:
按着做效果是出来了 有一些小细节确实得研究一下代码 有一个需要 ...
扩展fancybox图片展示js插件,实现对图片的旋转
import java.nio.ByteBuffer; import org.apache.cassandra.thrift.Cassandra; import org.apache.cassandra.thrift.Column; import org.apache.cassandra.thrift.ColumnOrSuperColumn; import org.apache.cassandra.thrift.ColumnParent; import org.apache.cassandra.thrift.ColumnPath; import org.apache.cassandra.thrift.ConsistencyLevel; import org.apache.cassandra.thrift.InvalidRequestException; import org.apache.cassandra.thrift.NotFoundException; import org.apache.cassandra.thrift.TimedOutException; import org.apache.cassandra.thrift.UnavailableException; import org.apache.thrift.TException; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.transport.TFramedTransport; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; public class CassandraTest { static Cassandra.Client cassandraClient; static TTransport socket; private static void init(String keySpace) throws InvalidRequestException, TException { String server = "192.168.100.108"; int port = 9160; /* 首先指定的地址 */ socket = new TSocket(server, port); System.out.println(" connected to " + server + ":" + port + "."); TFramedTransport transport = new TFramedTransport(socket); /* 指定通信协议为二进制流协议 */ TBinaryProtocol binaryProtocol = new TBinaryProtocol(transport); cassandraClient = new Cassandra.Client(binaryProtocol); /* 建立通信连接 */ socket.open(); cassandraClient.set_keyspace(keySpace); } public static void main(String[] args) throws TException, TimedOutException, InvalidRequestException, UnavailableException, NotFoundException { /* 选择需要操作的,可以理解成数据库 */ String keyspace = "wyqTest"; /* 初始化连接 */ init(keyspace); /* 创建一个表名*/ String columnFamily = "userprofile"; //KEY的名字 String tablename = "myinfo"; /* 插入一条记录 */ insertOrUpdate(columnFamily, tablename, "fengye", "枫叶", System.currentTimeMillis()); /* 删除一条记录 */ //delete(columnFamily,tablename,"fengye",System.currentTimeMillis()); /* 获取一条记录 (由于插入和删除是同一条记录,有可能会检索不到哦!请大家主意! */ Column column = getByColumn(columnFamily, tablename, "fengye", System.currentTimeMillis()); System.out.println("read Table " + columnFamily); System.out.println("read column name " + ":" + toString(column.name)); System.out.println("read column value" + ":" + toString(column.value)); System.out.println("read column timestamp" + ":" + (column.timestamp)); close(); } /** * 插入记录 */ public static void insertOrUpdate( String columnFamily, String tableName, String ColumnName, String ColumnValue, long timeStamp) throws TException, TimedOutException, InvalidRequestException, UnavailableException, NotFoundException { /* 创建一个column path */ ColumnParent parent = new ColumnParent(columnFamily); Column col = new Column(CassandraTest.toByteBuffer(ColumnName)); col.setValue(CassandraTest.toByteBuffer(ColumnValue)); col.setTimestamp(System.currentTimeMillis()); try{ /* * 执行插入操作,指定keysapce, row, col, 和数据内容, 后面两个参数一个是timestamp, * 另外一个是consistency_level timestamp是用来做数据一致性保证的, * 而consistency_level是用来控制数据分布的策略,前者的理论依据是bigtable, 后者的理论依据是dynamo */ cassandraClient.insert( CassandraTest.toByteBuffer(tableName), parent, col, ConsistencyLevel.ONE); }catch(Exception e){ e.printStackTrace(); } } /** * 删除记录 */ public static void delete( String columnFamily, String tablename, String ColumnName, long timeStamp) throws TException, TimedOutException, InvalidRequestException, UnavailableException, NotFoundException { /* 选择需要操作的Keyspaces, 存放数据表所在的空间位置 */ /* 数据所在的行标 */ /* 创建一个column path */ ColumnPath col = new ColumnPath(columnFamily); col.setColumn(CassandraTest.toByteBuffer(ColumnName)); try{ /* * 执行删除操作,指定keysapce, row, col, 后面两个参数一个是timestamp, * 另外一个是consistency_level timestamp是用来做数据一致性保证的, * 而consistency_level是用来控制数据分布的策略,前者的理论依据是bigtable, 后者的理论依据是dynamo */ cassandraClient.remove( CassandraTest.toByteBuffer(tablename), col, System.currentTimeMillis(), ConsistencyLevel.ONE); }catch(Exception e){ e.printStackTrace(); } } /** * 获取数据 */ public static Column getByColumn( String columnFamily, String tablename, String ColumnName, long timeStamp) throws TException, TimedOutException, InvalidRequestException, UnavailableException, NotFoundException { try{ /* * 执行查询操作,指定keysapce, row, col, timestamp timestamp是用来做数据一致性保证的, * 而consistency_level是用来控制数据分布的策略,前者的理论依据是bigtable, 后者的理论依据是dynamo */ /* 创建一个columnFamily */ ColumnPath col = new ColumnPath(columnFamily); col.setColumn(CassandraTest.toByteBuffer(ColumnName)); System.out.println(tablename); System.out.println(ColumnName); System.out.println(cassandraClient.get(toByteBuffer(tablename), col, ConsistencyLevel.ONE)); ColumnOrSuperColumn superColumn = cassandraClient.get( CassandraTest.toByteBuffer(tablename), col, ConsistencyLevel.ONE); System.out.println(">>>>>>>>>>>>>>>>" + superColumn); Column column = cassandraClient.get(CassandraTest.toByteBuffer(tablename), col, ConsistencyLevel.ONE).column; return column; }catch(Exception e){ e.printStackTrace(); return null; } } /** * 关闭当前的远程访问连接 */ public static void close() { socket.close(); } //转这Byte public static ByteBuffer toByteBuffer(String value) { try{ return ByteBuffer.wrap(value.getBytes("UTF-8")); }catch(Exception e){ e.printStackTrace(); return null; } } //得到字符串 public static String toString(ByteBuffer buffer) { try{ byte[] bytes = new byte[buffer.remaining()]; buffer.get(bytes); return new String(bytes, "UTF-8"); }catch(Exception e){ e.printStackTrace(); return null; } } }
发表评论
-
java生成动态gif格式与png格式的验证码(代码5)
2013-10-25 15:01 1050import java.io.IOException; i ... -
java生成动态gif格式与png格式的验证码(代码4)
2013-10-25 14:59 728import java.util.Random; /* ... -
java生成动态gif格式与png格式的验证码(代码3)
2013-10-25 14:58 1160import java.awt.*; import jav ... -
java生成动态gif格式与png格式的验证码(代码2)
2013-10-25 14:56 3600import java.awt.AlphaComposite ... -
java生成动态gif格式与png格式的验证码(代码1)
2013-10-25 14:55 1014import java.awt.Color; import ... -
java多线程分块上传并支持断点续传最新修正完整版本
2013-10-15 17:47 27309package com.test; import ja ... -
java 分块下载
2013-10-14 19:39 2398package com.test; import ja ... -
java生成曲线图
2013-10-12 15:30 4978package com.test; import j ... -
用java生成柱状图
2013-10-11 19:16 3368package com.test; import ja ... -
关于tomcat虚拟路径配置
2012-12-31 20:42 1709最近一个学java的朋友问我tomcat的虚拟路径怎么设置,下 ... -
启动Eclipse时,启不起来JVM terminated. Exit code=-1
2012-05-11 09:48 1729出现错误了,不知道什么原因原本好好的Eclipse,今天早上出 ... -
cassandra初次使用之添加数据和得到数据
2012-03-22 20:11 2721添加数据 package com.guagua.test; ... -
用java生成网站的桌面快捷方式
2011-12-20 10:53 3690String templateContent = " ... -
Jutil结合springmock做项目的单元测式
2011-10-15 16:17 83741.首先下载springmock的jar包 2.把spri ... -
Java多线程编程的常见陷阱
2011-10-13 23:05 10611、在构造函数中启动线 ... -
如何以list进行排序
2011-07-27 19:56 950import java.util.*; public c ... -
Java输入验证码在linux上不能显示的问题
2011-06-29 20:48 4305做了个Java验证码程序,结果发现在Windows上运 ... -
图像验证码
2011-06-23 22:47 1156package test; import java ... -
md5
2011-06-23 22:47 1100package test; import java.s ... -
通过反射, 获得Class定义中声明的父类的泛型参数的类型
2010-10-22 11:14 2372/** * 通过反射, 获得Class定义中声明的父类的 ...
相关推荐
现在,你可以通过这个接口进行数据的查询、保存、更新和删除。例如,添加一个新的用户: ```java @Autowired private UserRepository userRepository; public void addUser(User user) { userRepository.save...
Hector提供了对Cassandra的各种操作,包括CRUD(创建、读取、更新和删除)操作,以及更复杂的查询和索引管理。 Hector的使用步骤: 1. 添加依赖:首先,要在项目中引入Hector库的依赖。通常,这可以通过Maven或...
持续的维护和更新确保了其与Kubernetes及Cassandra的兼容性。 7. **最佳实践**: 在实际使用中,了解如何优化Cassandra配置、监控集群健康状况以及合理规划存储和网络资源是至关重要的。Cassandra-Operator的文档...
通过深入学习Cassandra文档,开发者和管理员能够掌握如何高效地使用和管理这个强大的分布式数据库系统,满足大数据场景下的复杂需求。无论是构建大规模的数据仓库还是实时分析应用,Cassandra都提供了坚实的基础。
Cassandra JDBC Driver支持CQL语法,开发者可以通过执行CQL语句来进行数据查询、插入、更新和删除等操作。 4. **性能优化**:Cassandra JDBC Driver在设计时考虑了性能因素,它能够高效地处理大量的数据请求,减少...
amily 是 Cassandra 数据模型的核心组成部分,用来组织和管理 Column 和 SuperColumn。...尽管在理解和使用上可能需要一些学习曲线,但 Cassandra 的这些特性使其成为大数据领域中的一个重要选择。
Cassandra 的设计使得它可以轻松地添加或删除节点,无需停机。在Cassandra 1.2 中,这一特性得到了进一步增强,使得扩展更加平滑,适合大规模数据存储。 ### 6. Compaction 策略 Cassandra 1.2 对数据压缩策略进行...
同时,使用Cassandra的分片和复制策略可以提高系统的容错性和读写性能。 总结,Laravel结合Cassandra可以构建高性能、可扩展的Web应用。通过使用Eloquent模型和查询构建器,开发者能够以更熟悉的Laravel方式处理...
2. **一致性哈希**:Cassandra使用一致性哈希来分布数据,这使得添加或删除节点时对整体性能的影响最小。 3. **列族模型**:不同于传统的行存储,Cassandra采用列族(Column Family)模型,允许灵活的数据结构,...
11. **Compaction策略**:Cassandra提供了多种数据压缩策略,如SizeTieredCompactionStrategy (STCS) 和LeveledCompactionStrategy (LCS),用于优化磁盘空间使用和读写性能。 12. **Apache Cassandra社区**:由于其...
这种架构使得Cassandra能够支持水平扩展,只需添加更多的节点就能增加存储容量和处理能力。 2. **一致性与可用性**:Cassandra 使用了最终一致性的模型,允许用户在一致性和可用性之间进行权衡。在3.11.13版本中,...
CQL支持创建、修改和删除表,以及插入、更新和查询数据。掌握CQL是使用Cassandra进行数据操作的关键。 此外,书中还会涉及Cassandra的集群配置和运维,包括节点添加和移除、数据迁移、监控和性能调优等。这些内容...
- **高度可扩展性**:Cassandra通过简单的节点添加即可扩展存储和处理能力,无需重启任何进程或修改应用程序。 - **多数据中心支持**:Cassandra支持跨多个数据中心的部署,每个数据中心都可以作为读写操作的端点,...
- 为了验证环境变量是否正确配置,需要重新打开一个新的命令提示符窗口,并在其中执行`echo %JAVA_HOME%`和`echo %CASSANDRA_HOME%`命令。如果这些命令能够正确输出相应的路径,那么就说明环境变量配置成功。 **2....
该结构使得每个节点功能完全相同,可以灵活地添加节点来完成系统的扩展或删除节点,而不需要大规模转移数据。同时,系统彻底避免了系统因单点故障导致的不稳定性。 1.1 系统架构 Cassandra的系统架构基于P2P环形...
这种架构可以轻松地添加或删除节点,以应对不断变化的数据量和流量需求。 2. **一致性与可用性**:Cassandra 支持多副本策略,可以配置不同的一致性级别(如 QUORUM、ONE、ALL 等),以平衡读写速度和数据一致性。...
2. **一致性哈希**:Cassandra使用一致性哈希来分配数据到不同的节点,这有助于在添加或删除节点时保持数据分布的均匀性,避免大规模的数据迁移。 3. **Gossip协议**:节点间的通信依赖于Gossip协议,这是一种去...
以上是 Cassandra CQL3 的核心知识点概览,涵盖了数据模型的设计、CQL 的基本使用、数据的插入和更新、查询操作以及表和索引的管理等方面。掌握这些内容对于有效利用 Cassandra 来构建高性能的应用程序至关重要。
Cassandra的schema可以随时更改,不需要提前设计schema,可以随时添加或删除字段。 1.2 支持range查询 Cassandra支持range查询,可以对Key进行范围查询。 1.3 高可用 Cassandra是高可用的,单点故障不影响集群...