Ruby使用GDBM操作DBM数据存储方法实例详解(rubywoo是什么牌子口红)这样也行?

随心笔谈10个月前发布 admin
230 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了GDBM( ActiveRecord 背后的数据库驱动库)的主要操作功能,涵盖查询、插入、更新、遍历、筛选、删除、大小判断、转换等核心操作。具体包括: 1. **查询操作**: - `fetch`:根据键获取值,键不存在返回 `nil`。 - `values_at`:获取多个键的值。 - `key`:根据值获取键。 - `keys`、`values`:返回所有键或值。 - `has_key?`、`has_value?`:判断键或值的存在。 2. **更新与插入操作**: - `store`:更新或插入键值对。 - `shift`:移除并返回键值对。 - `delete`:删除键值对,键不存在时插入。 - `delete_if`、`reject`、`reject!`:根据条件删除键值对,其中 `delete_if` 修改GDBM,`reject!` 等价于 `delete_if`。 3. **遍历操作**: - `each_pair`、`each_key`、`each_value`:遍历键值对、键、值。 4. **筛选操作**: - `select`:筛选符合条件的键值对。 5. **大小判断**: - `empty?`、`length`、`db_size`:判断数据库是否为空、返回键值对的数量。 6. **其他操作**: - `invert`:反转键值对。 - `close`、`to_a`、`to_hash`:关闭数据库、转换为数组或哈希。 - `replace`、`update`、`reorganize`:替换或合并数据库内容。 - `sync`、`fastmode`、`cachesize`:配置同步模式、快照大小。 文章内容全面展示了GDBM的主要功能,适合开发者快速了解其操作方法和用法。

######### 查询、插入、更新 #########
[“key”]
fetch(key [, default]) → value
检索指定的key。
使用`[]`检索时,如果key不存在将返回nil,
使用fetch检索时,如果key不存在则报错,或者返回指定的默认值

values_at(key, …) → array
检索一个或多个key,并以数组方式返回对应的value

[“key”]=value
store(key, value) → value
更新指定的key,如果key不存在则插入

########## 遍历 #########
each_pair { |key, value| block } → gdbm
each_key { |key| block } → gdbm
each_value { |value| block } → gdbm
分别根据key-value、key、value遍历db

######### 其它检索、筛选方式 #########
key(value) → key
根据value找到其key,如果有多个相同的value,返回第一个

keys → array
以数组方式返回db中所有的key

values → array
以数组方式返回所有value

select { |key, value| block } → array
筛选所有满足条件的key-value

######### 判断key或value是否存在 #########
has_key?(k) → true or false
include?(k) → true or false
key?(k) → true or false
member?(k) → true or false
判断key是否存在

has_value?(v) → true or false
value?(v) → true or false
判断指定的value是否存在

######### 删除 #########
delete(key) → value or nil
根据key移除key-value并返回被移除的Key-value,db若空,返回nil

shift → (key, value) or nil
移除指定的key-value,并以数组方式返回之,db若空,则返回nil

delete_if { |key, value| block } → gdbm
移除满足条件(语句块返回true)的key-value,直接修改gdbm

reject { |key, value| block } → hash
等价于delete_if,但不修改gdbm,而是以hash的方式返回

reject! { |key, value| block } → gdbm
等价于delete_if,直接修改gdbm

clear → gdbm
清空db中所有key-value

######## 大小判断 #########
empty? → true or false
db是否为空

length → fixnum
size → fixnum
等价,返回db中的key-value数量

####### 其它操作 #########
invert → hash
反转gdbm中key-value:key作为value,value作为key,并以hash的方式返回

close → nil
关闭已打开的db文件

closed? → true or false
判断db文件是否已关闭

replace(other) → gdbm
将另一个gdbm(即other)的内容覆盖替换到当前的gdbm

update(other) → gdbm
用另一个gdbm(即Other)合并到当前gdbm,若key冲突,则当前gdbm的key被覆盖

reorganize → gdbm
重组gdbm

cachesize=size → size
设置gdbm内部的hash桶缓存大小

######## gdbm模式 #########
sync → gdbm
将IO buffer中的数据刷入磁盘中的db文件,全部写入成功才返回
如果以SYNC标记打开,则无需sync()

fastmode=boolean → boolean
syncmode=boolean → boolean
打开或关闭sync模式。
sync模式下,写入操作需要写入磁盘db文件成功(或失败)后才返回,
非sync模式下,只需写入io buffer即可返回。
syncmode方法在gdbm >=1.8才可用,在此版本之前,使用方法fastmode=######### 转换 #########
to_a → array
to_hash → hash
转换为数组、转换为hash

© 版权声明

相关文章