NOSQL(一)–Redis

简介

前不久初步接触NoSQL,翻译过来就 not only sql,非关系项目数据库吧。

内部要发生四格外接近NoSQL,今天我们介绍中的平等栽键值对之NoSQL:Redis。

概念:Redis是一个开源之动ANSI
C语言编、支持网络、可根据内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

安装(Windows)

优先说下安装吧!感觉立马东西同mongodb差不多,安装以及陈设好简单,

下载地址:https://github.com/dmajkic/redis/downloads
下充斥下来的保管里出三三两两独,

一个是32个的,一个凡是64个的。根据自己之实情情况选择,我的凡32bit,

拿这个文件夹复制到任何地方,比如D:\redis 目录下。

打开一个cmd窗口  使用cd命令切换目录及d:\redis  运行 redis-server.exe
redis.conf  

假定想方便的话,可以管redis的门路加到网的环境变量里,这样就是看看得重复失败路径了,后面的怪redis.conf可以省略,如果简单,会启用默认的。输入后,会显示如下界面:

图片 1  

此时候别启一个cmd窗口,原来的不用关,不然就是无法访问服务端了

切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 产出下图:

图片 2  

 

winodows
环境下的布置与有关命令:

此刻,就曾完结布置了,现在说下它的底redis.conf配置文件。下面是系项之印证:

还改redis的布局需要修改redis.conf文件,以下是她有重点的配置注释:

#是否作为守护进程运行
daemonize no
#Redis 默认监听端口
port 6379
#客户端闲置多少秒后,断开连接
timeout 300
#日志显示级别
loglevel verbose
#指定日志输出的文件名,也可指定到标准输出端口
logfile redis.log
#设置数据库的数量,默认最大是16,默认连接的数据库是0,可以通过select N 来连接不同的数据库
databases 32
#Dump持久化策略
#当有一条Keys 数据被改变是,900 秒刷新到disk 一次
#save 900 1
#当有10 条Keys 数据被改变时,300 秒刷新到disk 一次
save 300 100
#当有1w 条keys 数据被改变时,60 秒刷新到disk 一次
save 6000 10000
#当dump     .rdb 数据库的时候是否压缩数据对象
rdbcompression yes
#dump 持久化数据保存的文件名
dbfilename dump.rdb
###########    Replication #####################
#Redis的主从配置,配置slaveof则实例作为从服务器
#slaveof 192.168.0.105 6379
#主服务器连接密码
# masterauth <master-password>
############## 安全性 ###########
#设置连接密码
#requirepass <password>
############### LIMITS ##############
#最大客户端连接数
# maxclients 128
#最大内存使用率
# maxmemory <bytes>
########## APPEND ONLY MODE #########
#是否开启日志功能
appendonly no
# AOF持久化策略
#appendfsync always
#appendfsync everysec
#appendfsync no
################ VIRTUAL MEMORY ###########
#是否开启VM 功能
#vm-enabled no
# vm-enabled yes
#vm-swap-file logs/redis.swap
#vm-max-memory 0
#vm-page-size 32
#vm-pages 134217728
#vm-max-threads 4 

主从复制

当由服务器配置文件中配备slaveof
,填写服务器IP及端口即可,如果主服务器设置了连年密码,在masterauth后指定密码就实行了。

持久化

  • redis提供了少数栽持久化文案,Dump持久化和AOF日志文件持久化。
  • Dump持久化是把内存中的数完全写副到数据文件,由安排策略触发写副,如果当数变动后还要休臻触发条件一旦生故障会导致局部多少丢失。
  • AOF持久化是日记存储的,是增量的款式,记录每一个数操作动作,数据恢复时即因这些日记来转。

 持久化指令:SAVE、BGSAVE、LASTSAVE

命令行操作

行使CMD命令提示符,打开redis-cli连接redis服务器 ,也可以动用telnet客户端

# redis-cli -h 服务器 –p 端口 –a 密码

redis-cli.exe -h 127.0.0.1 -p 6379

连日来成后,就可针对redis数据增删改查了,如字符串操作:

图片 3

以下是有的服务器管理常用命令:

info   #查看服务器信息
select <dbsize> #选择数据库索引  select 1
flushall #清空全部数据
flushdb  #清空当前索引的数据库
slaveof <服务器> <端口>  #设置为从服务器
slaveof no one #设置为主服务器
shutdown  #关闭服务

Redis数据结构

  Redis又常常让当是一个数据结构服务器。因为其的value不仅包括基本的string类型还有
list,set ,sorted
set和hash类型。当然这些项目的要素也都是string类型。也就是说list,set这些聚集类型为只好分包string
类型。

  你可以这些类别上举行多原子性的操作。比如对准一个字符value追加字符串(APPEND命令)。加加抑或减减一个数字字符串(INCR命令,当
然是按部就班整数处理的).可以对list类型进行push,或者pop元素操作(可以模拟栈和班)。对于set类型可以展开局部会合相关操作
(intersection union difference)。memcache也发生像样与++,–的下令。

应用

     对于当前有的超大型数据库尤其是起和多少读写性能及闹正在很可怜优势。

  Redis支持各种不同方法的序列。为了保效率,都是苏存在内存中之,它也可周期性的吧更新的数目勾勒副磁盘或者将修改操作写副追加的记录文件。

  举例:在我下的环境遭受,如SQLServer数据库和Application
的中等在了Redis,这样不光起至了一个中档的打算又大大提高了读写效率,同时减轻了数据库压力,也如安全性得到了大保证。

 

总结:

  今天大概介绍了Redis的设置以及安排事项,以及部分基础知识,作为当前于采用的一律款款大不错的高中级件,是值得学习之。而且就海量数据时代的到来这种NoSQL数据库会获取大面积的以,当然,目前拘留直当做数据库使用还有气劣势,比如不照SQL标准、ACID属性、表结构等等,扩展性差,缺少安全体制。对于大型数据库而言还有为数不少之地方用完善。但是作为中间价甚至小型数据程序还有更为长的。以后会针对那个产生更进一步讲解。