再见二丁目

再见二丁目

Eyes on me - 하나가 되는 순간 전 세계가 주목합니다.

NOSOL之Redis初了解



NOSQL

Not Only SQL,泛指非关系型数据库。在Web 2.0时代,为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题而产生。

四大分类:

  1. 键值(Key-Value)存储数据库,通常用哈希表来实现,如Redis,Oracle BDB。
  2. 列储存数据库,以列簇式存储,如HBase。
  3. 文档型数据库,同第一种键值存储相类似,如MongDB。
  4. 图形数据库,图结构存储,如Neo4J,Infinite Graph。

为什么产生NOSQL?

在Web 2.0时代,关系型数据库因其扩展困难,读写慢,成本高,有限的支撑容量等限制,难以满足这个云计算时代的需求,因此具有简单扩展,快速读写,低廉成本等优点的NOSQL应运而生。
然而需要注意的是,不是任何场景都适用NOSQL,以下场景才适合使用NOSQL: 1.数据库表schema经常变化(比如在线商城,维护产品的属性经常要增加字段)。 2.数据库表字段是复杂数据类型。 3.高并发数据库请求。 4.海量数据的分布式存储。

Redis

Redis事务

Redis事务一次可执行多个命令。

1
2
3
4
5
6
7
redis 127.0.0.1:6379> MULTI
OK (事务开始)
···
命令
···
redis 127.0.0.1:6379> EXEC (触发事务)
(redis 127.0.0.1:6379> DISCARD 取消事务)

Redis HyperLogLog

做基数统计的算法,用PFADD添加元素,再用PFCOUNT惊醒基数估算。

数据备份与恢复

1
2
redis 127.0.0.1:6379> SAVE              (创建当前数据库备份)
redis 127.0.0.1:6379> CONFIG GET dir (回复数据备份,要将备份文件dump.rdb 移动到 redis 安装目录并启动服务)