cassandra gem核心API入门:10个必会的读写操作(insert、get、remove)
cassandra gem核心API入门10个必会的读写操作insert、get、remove【免费下载链接】cassandraA Ruby client for the Cassandra distributed database项目地址: https://gitcode.com/gh_mirrors/cassan/cassandra想用 Ruby 操作 Cassandra 分布式数据库cassandra gem 是你绕不开的经典客户端库。它把 Thrift 协议封装成了几个简单直白的方法核心的读写操作只有 insert、get、remove 三大家族配合 count_columns、exists?、batch 等辅助方法就能覆盖日常开发 90% 以上的数据访问需求。本文面向新手用最少的代码带你快速掌握 10 个必会的读写操作看完就能动手写代码。️一、为什么选择 cassandra gemcassandra gem 是 Twitter 早期开源的 Ruby 客户端历史悠久、API 稳定兼容 Cassandra 0.7.x 到 2.0.x 多个版本。它的优势非常明显API 极简读、写、删分别对应get、insert、remove记忆成本极低版本自适应内置 0.61.2 多套协议实现连接不同版本集群无需改代码自带 Mock 实现lib/cassandra/mock.rb 提供了纯内存模拟写单元测试、本地调试非常方便不用真的起集群批量原子写入batch方法把多次写操作打包发送保证原子性。对于刚接触分布式数据库的 Ruby 开发者来说它是理解「行键 列族」数据模型的最佳入口。二、快速开始cassandra gem 的安装与连接方法1. 安装方式通过 RubyGems 一条命令即可安装gem install cassandra如果你想阅读源码或参与改进也可以通过 git 克隆仓库git clone https://gitcode.com/gh_mirrors/cassan/cassandra2. 建立连接连接只需要 keyspace 名称和服务器地址两个参数默认地址是127.0.0.1:9160require cassandra client Cassandra.new(Twitter, 127.0.0.1:9160)如果集群开启了认证先调用login!再执行读写client.login!(username, password) 版本提示gem 默认按 0.8 协议连接。如果你的集群是 1.0 以上可以用require cassandra/1.0指定版本或设置环境变量CASSANDRA_VERSION1.0。三、上手前必懂三个核心概念Cassandra 的数据模型和关系型数据库差异很大但只需理解三件事概念类比 MySQL说明Keyspace数据库最顶层的命名空间连接时指定Column Family表数据存储单元如Users、StatusesRow Key主键一行数据的唯一标识写入时由你指定每一行由多个「列名 → 值」组成列名还可以是时间戳UUID这正是 Cassandra 擅长时序数据的秘密。读写 API 的完整定义见 README.md 的 Read/Write API 章节。四、写入操作cassandra insert 的 3 种玩法 ✍️insert(column_family, key, hash, options)是核心写入方法实现在 lib/cassandra/cassandra.rb。第三个参数是一个 Hash键为列名、值为列值。操作 1单行基础写入client.insert(:Users, 5, {screen_name buttonscat, age 18})写入后行键5下就有了两列数据。操作 2带 TTL 的自动过期写入options里支持:ttl参数指定数据存活秒数非常适合验证码、缓存等场景# 60 秒后自动过期 client.insert(:Users, 6, {screen_name temp_user}, :ttl 60)操作 3超级列族中的嵌套写入如果列族是 SuperColumnFamilyHash 需要嵌套一层即「超级列 → 普通列」的结构columns {uuid1 v1, uuid2 v2} client.insert(:StatusRelationships, key, {user_timelines columns})其他常用选项还有:timestamp默认取当前毫秒时间和:consistency默认ONE即一个节点确认即可。五、读取操作cassandra get 查询的 4 个方法 读取家族的方法都支持:count、:start、:finish、:reversed、:consistency这几个选项默认最多返回 100 列。操作 4get 读取整行client.get(:Users, 5) # {screen_name buttonscat, age 18}返回值是Cassandra::OrderedHash保持列的有序性。操作 5get 读取指定列传入列名即可精确取值client.get(:Users, 5, screen_name) # buttonscat只取需要的列能显著减少网络传输的数据量。操作 6multi_get 一次读取多行传入行键数组一次请求拿到多行数据不存在的行返回空 Hashclient.multi_get(:Users, [1, 2, bogus])multi_get的实现见 lib/cassandra/cassandra.rb非常适合批量详情页等场景。操作 7get_range 范围扫描遍历或分页读取某一列族的数据配合:key_count限制返回行数client.get_range(:Users, :key_count 100) client.each(:Users) { |key, cols| puts key }each、get_range_keys都是基于get_range的便捷封装可以用来做全表遍历定义见 lib/cassandra/cassandra.rb。六、辅助查询count_columns 与 exists? 操作 8count_columns 统计列数量想知道一行有多少列无需取回全部数据client.count_columns(:Users, 5) # 2操作 9exists? 判断数据是否存在写入前检查、读取前判断返回布尔值client.exists?(:Users, 5) # true client.exists?(:Users, 5, age) # true client.exists?(:Users, bogus) # false注意exists?在底层只会查询最多 1 列性能开销极小可放心使用。七、删除操作cassandra remove 的两种粒度 ️remove(column_family, key, *columns)的删除粒度由参数决定实现在 lib/cassandra/cassandra.rb操作 10删除指定列 / 整行# 只删除 body 这一列 client.remove(:Statuses, key, body) # 不传列名则删除整行 client.remove(:Statuses, key)删除单个超级列或删除多列也是支持的传对应列名即可。此外truncate!可以清空整个列族使用前请三思⚠️八、进阶技巧batch 批量原子写入 当需要同时写入多行、或者「先写后删」保证原子性时用batch把操作打包一次性发给服务器。批量队列实现在 lib/cassandra/batch.rbclient.batch do client.insert(:Statuses, k1, {body v1}) client.insert(:Statuses, k2, {body v2}) client.remove(:Statuses, k3) end大量数据批量导入时还可通过:queue_size选项控制每个批次的大小避免单次请求过大。九、新手避坑指南 行键必须是字符串源码在 lib/cassandra/helpers.rb 中做了强校验传入非 String 会直接报ArgumentError返回的是 OrderedHash不要假设它是普通 Hash迭代顺序对时间序列数据很重要删除不是立即物理清除Cassandra 的删除是写 Tombstone 标记数据在gc_grace_seconds后才真正清理get_range遍历时可能仍会扫到空行本地调试用 Mock开发阶段用Cassandra::Mock代替真实集群配合test/cassandra_mock_test.rb里的用例可以快速验证业务逻辑。十、总结cassandra gem 用 10 个方法就完成了分布式数据库的核心读写闭环insert写入、get/multi_get/get_range读取、count_columns计数、exists?判断、remove删除再加上batch批量原子操作。掌握这套 API你就能在 Ruby 项目中流畅地读写 Cassandra 了。建议把本文的示例在本地跑一遍尤其是get与remove的组合练习很快就能建立肌肉记忆【免费下载链接】cassandraA Ruby client for the Cassandra distributed database项目地址: https://gitcode.com/gh_mirrors/cassan/cassandra创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

抖音批量下载实战手册:用douyin-downloader把上千条视频一次搞定

抖音批量下载实战手册:用douyin-downloader把上千条视频一次搞定

抖音批量下载实战手册:用douyin-downloader把上千条视频一次搞定 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…

2026/8/18 15:47:03 阅读更多 →
LXMusic音源保姆级配置指南:5关闯关,快速实现全网免费听歌

LXMusic音源保姆级配置指南:5关闯关,快速实现全网免费听歌

LXMusic音源保姆级配置指南:5关闯关,快速实现全网免费听歌 【免费下载链接】LXMusic音源 lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/guoyue2010/lxmusic- 洛雪音乐(LX Music&#xff0…

2026/8/18 15:47:03 阅读更多 →
AsmSpy自动生成bindingRedirect:一键终结DLL版本冲突

AsmSpy自动生成bindingRedirect:一键终结DLL版本冲突

AsmSpy自动生成bindingRedirect:一键终结DLL版本冲突 【免费下载链接】AsmSpy Simple command line assembly reference checker 项目地址: https://gitcode.com/gh_mirrors/as/AsmSpy 每个 .NET 开发者都遇到过这样的噩梦:程序运行时突然抛出 Fi…

2026/8/18 15:47:03 阅读更多 →

最新新闻

老旧Mac如何免费升级最新macOS?OpenCore Legacy Patcher完整上手指南

老旧Mac如何免费升级最新macOS?OpenCore Legacy Patcher完整上手指南

老旧Mac如何免费升级最新macOS?OpenCore Legacy Patcher完整上手指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 如果你的Mac是2014年、2015年…

2026/8/18 16:30:59 阅读更多 →
5分钟快速上手Qwen3.5-9B-w4a16-asym-torchao-v0.17.0:AMD EPYC CPU推理入门教程

5分钟快速上手Qwen3.5-9B-w4a16-asym-torchao-v0.17.0:AMD EPYC CPU推理入门教程

5分钟快速上手Qwen3.5-9B-w4a16-asym-torchao-v0.17.0:AMD EPYC CPU推理入门教程 【免费下载链接】Qwen3.5-9B-w4a16-asym-torchao-v0.17.0 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Qwen3.5-9B-w4a16-asym-torchao-v0.17.0 Qwen3.5-9B-w4a16-asym…

2026/8/18 16:30:59 阅读更多 →
Goo-Engine 安装实录:3 个里程碑、4 个专属节点,把动漫渲染工期从 3 天压到 10 分钟

Goo-Engine 安装实录:3 个里程碑、4 个专属节点,把动漫渲染工期从 3 天压到 10 分钟

Goo-Engine 安装实录:3 个里程碑、4 个专属节点,把动漫渲染工期从 3 天压到 10 分钟 【免费下载链接】goo-engine Custom build of blender with some extra NPR features. 项目地址: https://gitcode.com/gh_mirrors/go/goo-engine Goo-Engine 是…

2026/8/18 16:30:59 阅读更多 →
PullToMakeSoup:Yalantis 出品的 iOS 动画下拉刷新组件完整介绍

PullToMakeSoup:Yalantis 出品的 iOS 动画下拉刷新组件完整介绍

PullToMakeSoup:Yalantis 出品的 iOS 动画下拉刷新组件完整介绍 【免费下载链接】PullToMakeSoup Custom animated pull-to-refresh that can be easily added to UIScrollView 项目地址: https://gitcode.com/gh_mirrors/pu/PullToMakeSoup 如果你正在寻找一…

2026/8/18 16:30:59 阅读更多 →
Sorting-Algorithms-Blender 项目结构全解析:sort_circle、sort_color、sort_scale、sort_combined 四大文件夹一文读懂

Sorting-Algorithms-Blender 项目结构全解析:sort_circle、sort_color、sort_scale、sort_combined 四大文件夹一文读懂

Sorting-Algorithms-Blender 项目结构全解析:sort_circle、sort_color、sort_scale、sort_combined 四大文件夹一文读懂 【免费下载链接】Sorting-Algorithms-Blender Sorting algorithms visualized using the Blender Python API. 项目地址: https://gitcode.co…

2026/8/18 16:30:58 阅读更多 →
深度解析SingGuard-NSFA-4B:一文读懂覆盖185种攻击风险的NSFA分类体系

深度解析SingGuard-NSFA-4B:一文读懂覆盖185种攻击风险的NSFA分类体系

深度解析SingGuard-NSFA-4B:一文读懂覆盖185种攻击风险的NSFA分类体系 【免费下载链接】SingGuard-NSFA-4B 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/SingGuard-NSFA-4B 随着AI Agent(智能体)开始自主调用工具、读写…

2026/8/18 16:29:58 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →