事实上,Redis的一个重要特性就是它并非通常意义上的数据库,虽然称之为数据库是因为它可以为你存储和维护数据,但它并不像关系数据库那样提供任何的SQL方言。不过不用担心,Redis并不是吞噬数据的黑洞,它只是不支持SQL及相关功能,但却提供了稳健的协议用于与之交互。
在Redis中,没有数据表的概念,也无须关心select、join、view等 *** 作或功能,同时也不提供类似于int或varchar的数据字段。你面对的将是相对原始的数据集合及数据类型。
探索之二:Available datatypes
下面我们深入看下这个奇怪的数据库是如何工作的。如上所见,Redis是基于key-value范式存储数据,所以先来重点看下"key"的概念。
key本质上就是简单的字符串,诸如"username"、"password"等。在定义key时,除了不能使用空格,你可以随意的使用普通的字符、数字等,像".",":","_"等在定义key时都能正常使用,所以像"user_name", "user:123:age", "user:123:username"都是不错的key的定义方式。
不像RDBMS中的字段名称,这里的key是Redis中的重要组成部分,所以我们必须在处理key时多加小心。在下面的讲述中,Redis并没有table的概念,所以像"SELECT username from users WHERE user_id=123"这种简单任务都只能换种方式实现,为了达到这种目的,在Redis上,一种方式是通过key "user:123:username"来获取结果value。如你所见,key的定义中携带了神秘信息(像user ids)。在Redis中,key的重要性可见一斑。(其他key-value数据库中key的地位也是如此。)
1、快照的方式持久化到磁盘
自动持久化规则配置
save
900
1
save
300
10
save
60
10000
上面的配置规则意思如下:
#
In
the
example
below
the
behaviour
will
be
to
save:
#
after
900
sec
(15
min)
if
at
least
1
key
changed
#
after
300
sec
(5
min)
if
at
least
10
keys
changed
#
after
60
sec
if
at
least
10000
keys
changed
redis也可以关闭自动持久化,注释掉这些save配置,或者save
“”
如果后台保存到磁盘发生错误,将停止写 *** 作.
stop-writes-on-bgsave-error
yes
使用LZF压缩rdb文件,这会耗CPU,
但是可以减少磁盘占用.
rdbcompression
yes
保存rdb和加载rdb文件的时候检验,可以防止错误,但是要付出约10%的性能,可以关闭他,提高性能。
rdbchecksum
yes
导出的rdb文件名
dbfilename
dump.rdb
设置工作目录,
rdb文件会写到该目录,
append
only
file也会存储在该目录下.
dir
./
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)