Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis与其他key-value缓存产品有以下三个特点:
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
Redis支持32位和64位。这个需要根据你系统平台的实际情况选择,这里我们下载Redis-x64-xxx.zip压缩包到F:DB路径下,解压后,将文件夹重新命名为redis。
打开一个cmd窗口使用cd命令切换目录到C:\redis运行redis-server.exeredis.windows.conf。
如果想方便的话,可以把redis的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个redis.windows.conf可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:
这样就启动了Redis服务器,记住不要关闭这个cmd界面
这时候另启一个cmd窗口
切换到redis目录下运行redis-cli.exe-h127.0.0.1-p6379。
这就连接上Redis数据库,可以进行数据操作了
设置键值对setmyKeyabc
取出键值对getmyKey
Redis的配置文件位于Redis安装目录下,文件名为redis.conf。
你可以通过CONFIG命令查看或设置配置项。(也是键值对的形式存储)
例子,查看、修改Redis的日志等级
查看所以的Redis配置语句:CONFIGGET*
下面介绍一些主要的配置信息:
redis.conf配置项说明如下:
1.Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
daemonizeno
2.当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定
pidfile/var/run/redis.pid
3.指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女AlessiaMerz的名字
port6379
4.绑定的主机地址
bind127.0.0.1
timeout300
6.指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
loglevelverbose
7.日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null
logfilestdout
8.设置数据库的数量,默认数据库为0,可以使用SELECT
databases16
save
Redis默认配置文件中提供了三个条件:
save9001
save30010
save6010000
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
rdbcompressionyes
11.指定本地数据库文件名,默认值为dump.rdb
dbfilenamedump.rdb
12.指定本地数据库存放目录
dir./
13.设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
slaveof
14.当master服务设置了密码保护时,slav服务连接master的密码
masterauth
15.设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH
requirepassfoobared
maxclients128
17.指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区
maxmemory
appendonlyno
19.指定更新日志文件名,默认为appendonly.aof
appendfilenameappendonly.aof
20.指定更新日志条件,共有3个可选值:no:表示等操作系统进行数据缓存同步到磁盘(快)always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)everysec:表示每秒同步一次(折衷,默认值)
appendfsynceverysec
vm-enabledno
22.虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享
vm-swap-file/tmp/redis.swap
23.将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0
vm-max-memory0
24.Redisswap文件分成了很多的page,一个对象可以保存在多个page上面,但一个page上不能被多个对象共享,vm-page-size是要根据存储的数据大小来设定的,作者建议如果存储很多小对象,page大小最好设置为32或者64bytes;如果存储很大大对象,则可以使用更大的page,如果不确定,就使用默认值
vm-page-size32
25.设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap)是在放在内存中的,,在磁盘上每8个pages将消耗1byte的内存。
vm-pages134217728
vm-max-threads4
27.设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启
glueoutputbufyes
28.指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法
hash-max-zipmap-entries64
hash-max-zipmap-value512
29.指定是否激活重置哈希,默认为开启(后面在介绍Redis的哈希算法时具体介绍)
activerehashingyes
30.指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件
include/path/to/local.conf
以上就是Redis的安装、配置、启用的介绍,和Oracle数据库一比简直不要太爽。