ssdb数据库(redis怎么做数据库)

本文目录
- redis怎么做数据库
- 能将Oracle数据导入sql server数据库吗
- 如何把sql server数据库迁移到oracle
- java jConnect-6_0连接远程sybase数据库
- 往ssdb存取大量数据如何提升存取速度
- 如何使用SSDB的zscan命令
- 如何测试rocksdb数据库的读写压缩性能
- Redis可以用来做数据库吗
redis怎么做数据库
单独使用Redis的话,它是成当不起数据库的任务,比如你每日活跃用户是1万人,但是你那台redis里面已经积累了50万人了(这个比例很正常),那么每次redis启动,就需要把50万load内存,每次redis备份,又需要把50万dump到磁盘,这靠谱么?
======================
补充1:可以用SSDB代替(redis协议+leveldb存储),生产环节若干 PCU百万级项目用过。
补充2:看了下陌陌争霸的方案,旁路存储,如果觉得时间充足,也可以仿照实现。
补充3:把冷数据落地到mongo,热数据在用redis存储。
能将Oracle数据导入sql server数据库吗
能。 一、在sql server中建个同名数据库,例如ssdb。 二、右键点击ssdb,选择“所有任务”——》“导入数据”,就会弹出一个“DTS导入\导出向导”, 点击下一步。在“数据源”下拉列表框中选择:“Microsoft OLE DB Provider Oracle”,点击“属性”按钮, 在“数据源”下拉列表框中选择:“Microsoft OLE DB Provider Oracle”,点击“属性”按钮, 再输入登陆数据库的用户名称和密码,点击“测试连接”,弹出“测试连接成功”, 三、点击确定,点击下一步,进入“选择目的”窗口,"目的",默认就可。“服务器”,根据自己需要,选择。根据自己设置的情况选择“使用Windows身份验证”还是“使用Sql Server身份验证”。特别注意的是,“数据库”要选择要导入数据的数据库。点击下一步。 四、进入“指定表复制或查询”窗口, 默认,点击下一步。 五、进入“选择源表和视图”窗口,选择你要导入的表,“转换”一栏有个“ ”按钮,点击,进入“列映射和转换”窗口,根据自己需要设定。设置完后,点击下一步。 六、进入“保存、调度和复制包”窗口, 根据自己的需要,设置,点击下一步。 七、进入“正在完成DTS导入\导出向导”窗口,点击“完成”按钮。
如何把sql server数据库迁移到oracle
前阵做了下数据库迁移,从Sql Server2005迁移到Oracle
10g,这里说一下迁移的方法。
Sql
Server和Oracle区别比较大,包括语法,字段类型,数据库机制,配置管理方法等等,区别是全方位的,做迁移需要注意很多问题,在迁移过程中也会遇到问题,需要细细处理之。这里说一下数据库结构的迁移,和迁移过程中注意的一些问题。(当然具体的数据库迁移过程中可能问题是不一样的,具体问题具体分析了)
迁移的方法是从Sql Server已有数据库中生成出Oracle的建库脚本,然后在Oracle数据库上执行。用到的生成工具是Power
Designer。
1、打开PD(Power
Designer简称,以下均使用PD),新建一个PDM(物理数据模型),DBMS选择Microsoft SQL
Server2005,Model name起名叫做mssdb。
2、通过逆向工程将现有Sql
Server数据库生成PDM
(1)选择Database-》Reverse
Engineer Database,配置数据源,选择要迁移的数据库,输入用户名、密码。
(2)选择数据库,选择用户dbo下的所有表、视图、存储过程、方法、触发器、序列等(由于Sql Server与oracle,数据库概念上的区别,这里不需选择用户、角色)。
点击OK,生成PDM。已经建立过PDM的情况,这一步可以省略。
3、生成Oracle物理数据模型
选择Tools-》Generate Physical Data Model
(1)DBMS选择Oracle
10g,输入名称:oradb。
(2)在Configure Model
Options配置中, Model Settings的Table&View界面中,勾选Ignore
identifying owner。Oracle中用户的概念与Sql Server不同,这里忽略owner。
(3)Selection标签,选择需要生成的所有表、视图、外键、存储过程、方法、触发器、序列等。
点击确定,即生成了oracle 的PDM。
注意,在生成PDM的过程中可能不会一帆风顺,有可能会报错(比如提示对象长度超限),这会导致生成失败。这时需要根据具体错误提示做相应修改(可能需要多次调整,没有办法,谁让两者差别这么大的呢)。
4、生成Oracle脚本
与Sql
Server不同的是,在Oracle里表名、字段名全部为大写,若要单独处理为小写,需加上双引号。而PD生成的脚本默认是有双引号的,这里需要修改默认配置,去掉双引号。
然后选择oradb,然后选择Database-》Generate
Database,进入数据库生成界面
在Format标签下,去掉勾选Owner prefix,它将省掉建表语句前“dbo.”所带来的麻烦;
在Selection标签下,选择要生成脚本的各对象;
在Preview标签下,可以预览预生成的脚本(表较多时,切换会比较慢)。
点击确定,即得到生成的脚本。
5、检查与调整
脚本是PD自动生成的,因为表比较多,在oracle上直接去执行难免会有错误。所以在执行之前需要检查下脚本的正确性。这里提几点需要注意的地方。
(1)Oracle要求表名、字段名等长度最多是30位,而Sql Server没有这个限制,所以可能会有在Sql
Server创建正常的表而在Oracle下会创建失败。
(2)检查一下主键、外键的名称,它们有可能是随机生成的名称。可根据相应规范进行修改。
(3)检查字段名是否用到了Oracle的关键字。比如Sql
Server命名“备注”字段可能会用“comment”、标题用“title”,但comment、title在Oracle中是关键字,不可以做为字段名称。
(4)存储过程、方法是否符合Oracle语法。
(5)Sql
Server有自增字段,而Oracle没有。要实现此功能,需要相应创建序列、触发器。
(6)Sql
Server中字段类型为text的情况,如果是存二进制数据需要在Oracle中选用Blob字段类型。
(7)Sql
Server有外键的情况,主表记录删除,从表记录也会跟着删除;而Oracle默认情况是当从表有记录时,所对应的主表记录不允许删除。所以这种情况下外键需要添加外键级联删除。
(8)生成的表、视图等个数是否正确,缺失的情况可单独生成脚本。
系统不一样,出现问题的点可能也不一样,具体问题具体分析。
6、建库
在Oracle数据库服务(当然要先安装好Oracle服务端、并建立数据库)orcl实例下,使用用户sys登陆并创建用户orauser,并将resource、connect角色赋给orauser(这里,orauser使用默认表空间、默认临时表空间)。
用刚创建的用户orauser登陆orcl数据库服务,执行前面已经生成的脚本,若干分钟后脚本执行完毕,观察一下执行过程中有无错误产生,也可以记录执行的日志以便日后查看;检查看表、视图等个数与Sql
Server数据库中是否一致。如果都正确,那么,数据库结构从Sql
Server到Oracle的迁移到此结束。当然,迁移的是否正确还需要在之后的使用中检查,发现错误及时修改即可。
java jConnect-6_0连接远程sybase数据库
1、看看文件名是不是 ConnTest ,文件名要和方法名匹配。
2、把第一行:import com.sybase.jdbc3.jdbc.SybDriver; 删掉,把工作环境切换到你的文件夹下。
3、连接
先安装sybase open client并设置数据库连接,再用如下代码
《%
dim ConnStr,connoss
ConnStr = "Driver={SYBASE SYSTEM 11};srvr=***;database=***;uid=***;pwd=***;"
Set connoss = Server.CreateObject("ADODB.Connection")
connoss.open ConnStr
sub closeconnoss()
connoss.close
set connoss=nothing
end sub
If Err Then
err.Clear
Set Connoss = Nothing
Response.Write "CONNECT TO OSSDB Error"
Response.End
End If
%》
往ssdb存取大量数据如何提升存取速度
SSD是硬件,读取和写入速度也是理论上,活着测试上的数据,实际使用上达不到。靠设置,刷固件提升不明显。所以在选择硬盘的时候还是多花点钱买读写速度快的。
如何使用SSDB的zscan命令
SSDB(LevelDB 服务器, NoSQL 存储方案)的 zscan 是最强大的一条命令, 因为它操作的是 zset(sorted set) 数据类型, 只需要一条 zscan 命令就能直接地表达业务逻辑, "所写即所想". 例如, 获取用户的未读消息列表, 获取按上架时间排序的商品列表, 获取微博 timeline...
zset 可以理解为关系数据库里具有两个字段的表, 一个字段是 key, UNIQUE 索引, 也即数据的唯一标识; 另一个字段是浮点型 score, 每一个 key 对应的排序权重值. 在关系数据库中, 要分页遍历数据, 就要执行类似的一条 SQL 查询:
select * from table order by score, key limit start, size
每一次查询都会进行排序, 性能非常低. 而 SSDB 的 zset 中的数据是已经排好序的, 读取时不需要进行排序. zscan 的命令原型为:
zscan name key_start score_start score_end limit
- name: 列表的标识
- key_start: 分页遍历列表时, 上一次遍历到的最大(score)的一条数据 key
- score_start: 上一次遍历到的数据的排序权重值最大值
- score_end: 想要遍历的数据的排序权重值最大值
- limit: 分页返回一次的数据条数
假设购物网站中有这样的一个商品表:
id, title, price, update_time
展示商品列表时, 有时需要按价格 price 排序, 有时需要按更新时间 update_time 排序, 用 SSDB 怎么解决? 那就需要建两个 zset:
#zset 1
key = id
score = price
#zset 2
key = id
score = update_time
这就是 NoSQL 的常用设计模式, 将带有 N 字段的关系数据库表分解成 N-1 个每个只有 2 个字段的数据库表, 这样每个表对应一个 SSDB 的 zset.
如何测试rocksdb数据库的读写压缩性能
***隐藏网址***
据说 rocksdb 性能不错, 在某些场景比 leveldb 更佳, 欢迎各位试用.注意, rocksdb 和 leveldb 不兼容 , 所以, 旧数据不能直接用于这两个引擎. 原来你用了 leveldb, 就能不直接换成 rocksdb, 你必须自己写脚本导数据.
Redis可以用来做数据库吗
结论:Redis 不能当数据用。
原因:我们理解的数据库,无论是 SQL、NoSQL、NewSQL,至少要是读写一致的。也就是说如果客户端发起一个写请求,如果服务器回复了成功,就算是之后服务器异常重启了,这个数据一样是能被读到的。
而 Redis 不是读写一致的。
答案里有人提到说 Redis 也会持久化,但是就算是 AOF,也是给客户端应答后,再定时写磁盘的,都是不一致的。
这里还没讨论磁盘损坏的问题。
有几个基于持久化存储的、兼容 Redis 协议的系统可以当作数据库使用,比如 SSDB、ARDB、Pika 等。但是据我所知,这些项目现在都不支持集群,没办法动态扩容。
另外,还有一个很麻烦的问题,就是刚才提到的 磁盘损坏问题,如果数据只存放在一个单点,一旦有磁盘损坏,就会造成数据丢失,所以,即使是同步持久化的但是没有集群备份数据的系统,用作数据库也是有很大风险的。

更多文章:
teammate(teammate,company,partner)
2026年10月11日 06:10
javascript arraybuffer(javascript可以把base64编码转换成二进制代码吗求示例代码!)
2026年10月11日 04:00
text函数公式(excel中round和text函数的区别是什么)
2026年10月11日 03:50
google chrome打不开(chrome浏览器打不开怎么回事 浏览器打不开的处理方法)
2026年10月11日 02:00
websocket整合springboot(Springboot整合Websocket遇到的坑)
2026年10月11日 01:40
drawerlayout(android 怎样让drawerlayout设置的侧滑菜单的内容充满屏幕)
2026年10月10日 19:20
xor四位数怎么运算(单片机怎样用C语言实现4个数字间的异或)
2026年10月10日 17:50
perl数组中最多的元素(用perl实现,得到一个数组中重复次数最多的元素)
2026年10月10日 17:00



