非关系型数据库    redis 和 mongodb

Nosql  == not only sql

开拓多少个 cmd 窗口
使用cd命令切换目录到 C:\redis 运行 redis-server.exe
redis.windows.conf
 。

非关系型数据库    redis 和 mongodb

如果想方便的话,能够把 redis
的门径加到系统的环境变量里,那样就省得再输路径了,前面包车型客车百般
redis.windows.conf
可以回顾,即使简单,会启用暗许的。输入之后,会显得如下界面:

解决:

澳门永利备用网址 1

  1. High performance   高并发读写
  2. Huge storage   海量数据的高功效存款和储蓄和访问
  3. High scalability & High availability 高可扩大性和高可用性

此时另启多个cmd窗口,原来的绝不关闭,不然就不能访问服务端了。

 

切换成redis目录下运维 redis-cli.exe -h 127.0.0.1 -p 6379 。

Nosql数据库的四大分类:

安装键值对 set myKey abc

  1. k-v存储
  2. 列存储 Hbase
  3. 文书档案存款和储蓄 Mongodb
  4. 图片数据库

取出键值对 get myKey

对比图:

 

澳门永利备用网址 2

 

 

基本操作

Nosql 特性:

NoSql概述

干什么须求NoSql

高并发读写

海量数据的高作用存款和储蓄和访问

高可扩展性和高可用性

  1. 易扩展
  2. 利落的数据模型
  3. 运气据量高品质,高可用

二:NoSql数据库的四大分类

键值(Key-Value)存储

列存储

文档数据库

图形数据库

澳门永利备用网址 3

NoSql的特点

易扩展

灵活的数据模型

大数据量,高性能

高可用

 

Redis概述

澳门永利备用网址,高质量键值对数据库,协理的键值数据类型:

字符串类型 散列类型 列表类型 集合类型 有序集合类型

Redis常用场景

缓存 任务队列 网站访问总计 数据过期处理 应用排名榜

分布式集群架构中的session分离

redis是c语言开发的

Jedis介绍

Jedis是redis 官方首要选取的Java客户端开签发承包合约

http://github.com/xetorthio/jedis

Jedis-jar url

下载地址: https://mvnrepository.com/artifact/redis.clients/jedis

                #Redis 的数据结构 

多样数据类型:

字符串(String) , 哈希(hash) ,字符串列表(list) ,
字符串集合(set),有序字符串集合(sorted set) 
常用的是字符串和哈希

 

Key的定义注意点:

不要过长

不用过短

集合的命名规范

redis应用场景:

存储String

常用命令:

赋值: set company imooc ,取值就能够通过 get company 获得 imooc

getset命令: getset company baidu 结果:imooc 然后 get company 结果: baidu
.getset key value 正是先取得key后更改value

删去 del key ,比如: 先设置 key 和value set person jack ,del person
重返数字1,假使再去得到get person 结果: nil 代表不存在

扩展命令

取值

数值增减

递增 incr num 暗中认可便是0,而get num 的结果就是 1 。

同理 decr num2 暗中同意也是0 而get num 的结果正是 -1 。

incrby num 5 正是经过 num+5的结果。一般num默许是0,将来应该就是5

同理decrby num2 5 结果正是-5

  • 做缓存
  • 任务队列
  • 网站访问总计
  • 采取排名榜
  • 数量过期处理
  • 等等

存储Hash

String key和value的map容器

每四个Hash能够储存429496729几个键值对

hset key field value 命令:

例子:

赋值 
hset myhash username jack

hset myhash age 18

当中 myhash 便是key 而username
和age都以字段名称,而背后的值时势字段里的值。那和map的集纳有少数组别

hset myhash2 username jack age 18

删去: hdel myhash2 结果就是: empty list or set

尽管在随着去删除 hdel myhash2 username 结果 0 
删除没有的字段就重回0

 

存储list:

ArrayList使用数组形式

LinkedList使用双向链接格局

双向链表中增添数量

双向链表中除去数据


存款和储蓄list常用命令:

两端添加 查看列表 两端弹出 获取列表成分个数 扩充命令

命令: lpush key value[value] 
lpush mylist3 a b c 1 2 3

命令: lrange key start stop 
取出: lrange mylist3 0 5 结果便是 3 2 1 c b a 这和java
中list集合有一点分裂 
自然也足以如此取值 lrange mylist3 0 -1
,结果和方面依然一如既往的。0代表第四个要素,而-1 代表末了一个成分

命令: 
lpop key 移出并赢得列表的第④个元素

llen key 获取列表长度

rpop key 移出并获得列表的末段二个因素

lpush key value 插入到已存在列表尾部,

rpush key value 插入到已存在列表头部

lpushx key value 同理也是插入到列表底部

rpushx key value 同理也是插入到列表底部

lpushx mylist3 x ,通过查阅 lrange mylist 0 -1 得 x 3 2 1 a b c

redis的安装: 百度

存储set

和list类型不一样的是,set集合中不容许出现重复的要素

set可含蓄的最大因素数量是4294967295

 

储存set常用命令

加上/删除成分 获得集合中的成分 扩大命令

相会中的差集运算 集合中的犬牙相错运算 集合中并集运算

要素添加:

sadd myset a b c 结果为 3

sadd myset a 结果为0

sadd myset 1 2 3

删除成分 :

srem myset 1 2 结果正是: a b 3 c

认清成分是或不是存在 
sismember myset a 存在重回 1 不设有就重返0

差集运算: sdiff key[key]

掺杂运算 sinner key [key ]

来得集合中全体的成分 SMEMBEPAJEROS key

来得集合中成员数量 SCA福特ExplorerD key

回去集合中的多少个或七个成员 srandmember key[count]

安装好redis之后(linux)

存款和储蓄Set使用情状

钉住一些唯一性数据

用来掩护数据对象时期的关系关系

修改配置文件来后台运维   

Redis的Keys的经过操作

keys * 查看全体的key 
del my1 my2 my3 删除有个别key

exists my1 查看key是还是不是留存 再次来到0是存在,1不设有

rename company newcompany 重命名为newcompany

expire key 一千 为key设置过期时间

TTL key 
以秒为单位,重返给定 key 的结余生存时间(TTL, time to live)。

澳门永利备用网址 4

Redis特性

相关天性

大部分据库

redis事务

多数据: 
暗许是0号数据库

select 0 ,当然也足以活动数据库 move myset 1 就是将0中的myset移动到myset

MULTI 
标记3个事务块的起来。

EXEC 
推行全体事务块内的指令。

DISCARD 
撤回事务,抛弃进行工作块内的保有命令。

./bin/redis-server
./redis.conf      用配置文件运转redis服务

Redis持久化

RDB方式

AOF方式

持久化使用情势: 
大切诺基DB持久化 AOF持久化 无持久化 同时使用奇骏DB和AOF

 ps -ef | grep redis    
查看redis服务是不是起来

RDB

优势:

汉兰达DB 是一个百般连贯(compact)的文书,它保存了 Redis
在有些时间点上的多少集。 那种文件分外适合用于开展备份:
比如说,你能够在新近的 24 小时内,每小时备份叁回 昂科雷DB
文件,并且在种种月的每天,也备份三个 RAV4DB 文件。
那样的话,即便遇上难点,也可以每2十四日将数据集还原到分化的版本。昂科威DB
分外适用于灾害苏醒(disaster
recovery):它只有一个文本,并且内容都尤其紧密,能够(在加密后)将它传送到其余数据大旨,只怕亚马逊S3 中。TiguanDB 能够最大化 Redis 的性质:父进程在保存 揽胜DB
文件时唯一要做的就是 fork
出二个子进程,然后这么些子进度就会处理接下去的兼具保留工作,父进度无须执行其它磁盘
I/O 操作。奥迪Q5DB 在苏醒大数量集时的速度比 AOF 的还原速度要快

劣势:

一经您要求尽量幸免在服务器故障时丢失数据,那么 HighlanderDB 不合乎您。 尽管 Redis
允许你设置分裂的保存点(save point)来支配保存 EvoqueDB 文件的效用, 然则,
因为CR-VDB 文件必要保留整个数据集的动静, 所以它并不是3个无拘无缚的操作。
因而你大概会至少 5 分钟才保存贰回 索罗德DB 文件。 在那种景观下,
一旦发生故障停机, 你就大概会丢掉好几分钟的数目。每回保存 OdysseyDB
的时候,Redis 都要 fork()
出贰个子经过,并由子进度来实行实际的持久化学工业作。 在数据集相比庞大时,
fork() 或许会十二分耗费时间,造成服务器在某某纳秒内停下处理客户端;
假如数据集至极伟大,并且 CPU
时间尤其忐忑以来,那么那种结束时间竟然或者会长达百分百一秒。 尽管 AOF
重写也须求进行 fork() ,但不论是 AOF
重写的执行间隔有多少长度,数据的耐久性都不会有任何损失

kill -9 <进度号>       
杀死进度来关闭redis-server

AOF

优势:

运用 AOF 持久化会让 Redis 变得万分耐久(much more
durable):你能够安装分化的 fsync 策略,比如无 fsync ,每分钟一回 fsync
,只怕每便执行写入命令时 fsync 。 AOF 的默许策略为每分钟 fsync
3遍,在那种安顿下,Redis
依旧能够保持突出的个性,并且就算爆发故障停机,也最八只会丢掉一分钟的数目(
fsync 会在后台线程执行,所以主线程可以继续大力地拍卖命令请求)。AOF
文件是3个只进行追加操作的日记文件(append only log), 因而对 AOF
文件的写入不必要展开 seek ,
尽管日志因为一些原因此带有了未写入完整的命令(比如写入时磁盘已满,写入中途停机,等等),
redis-check-aof 工具也能够任意地修复这种难题。 
Redis 能够在 AOF 文件体积变得过大时,自动地在后台对 AOF 进行重写:
重写后的新 AOF 文件包含了回复当前数据集所需的细小命令集合。
整个重写操作是绝对安全的,因为 Redis 在成立新 AOF
文件的历程中,会再三再四将下令追加到存活的 AOF
文件之中,固然重写进度中生出停机,现有的 AOF 文件也不会丢掉。 而一旦新
AOF 文件创造实现,Redis 就会从旧 AOF 文件切换来新 AOF 文件,并最先对新
AOF 文件举行追加操作。AOF 文件有序地保留了对数据库执行的拥有写入操作,
那么些写入操作以 Redis 协议的格式保存, 因而 AOF
文件的始末卓殊简单被人读懂, 对文件实行解析(parse)也很自在。
导出(export) AOF 文件也相当简单: 举个例子, 要是你相当大心执行了
FLUSHALL 命令, 但只要 AOF 文件未被重写, 那么一旦甘休服务器, 移除 AOF
文件末尾的 FLUSHALL 命令, 同等看待启 Redis , 就足以将数据集苏醒到 FLUSHALL
执行以前的动静。

劣势: 
对于同样的数据集来说,AOF 文件的体积经常要当先 福特ExplorerDB
文件的体量。依照所选取的 fsync 策略,AOF 的快慢或然会慢于 本田UR-VDB 。
在一般景色下, 每秒 fsync 的品质依旧格外高, 而关闭 fsync 能够让 AOF
的快慢和 昂CoraDB 一样快, 固然在高负荷之下也是如此。
可是在拍卖巨大的写入载入时,汉兰达DB
可以提供更有保管的最大延迟时间(latency)。AOF 在过去一度发出过如此的
bug : 因为个别命令的由来,导致 AOF
文件在重新载入时,没办法将数据集苏醒成保存时的真容。 (举个例子,阻塞命令
B奥德赛POPLPUSH 就早已引起过那样的 bug
。) 测试套件里为那种意况添加了测试:
它们会自动生成自由的、复杂的数据集,
并通过重新载入这几个多少来担保一切平常。 固然这种 bug 在 AOF
文件中并不常见, 可是相比较的话, EscortDB 大约是不只怕出现那种 bug 的。

 

也得以用  ./bin/redis-cli
shutdown  来关闭redis

 


Jedis   java的连接redis的一个jar包

连接redis的例子,创制连接池的例子

澳门永利备用网址 5

 

防火墙 6379 的端口打开

澳门永利备用网址 6

 

连接池

澳门永利备用网址 7

澳门永利备用网址 8

 


Redis的数据结构:

  1. 字符串             String
  2. 字符串列表      list
  3. 哈希                 hash
  4. 字符串集合      set
  5. 不变字符串      sorted-set

仓库储存String常用命令:

  • set                建立
  • get                查看
  • getset          重临一个字符串,约等于键的旧值。
    要是键不存在,则赶回nil
  • del               删除
  • incr             数字愈多1
  • decr            数字压缩1
  • incrby         数字愈来愈多自定义
  • decrby       数字压缩自定义
  • append      再次回到3个整数,在追加操作后的字符串的尺寸。

存储Hash:

  • hset key key_name values           
  • hset key key_name1 values1        建立hash,赋值单个
  • hmset key key_name value key_name1 value1       建立hash,赋值多个
  • hget key key_name             获得单个值
  • hmget key key_name key_name1     获得四个值
  • hgetall key       获得全套的key,value
  • hlen     得到长度
  • hkeys   获得键
  • hvals   获得值

存储List:

  • lpush
  • rpush
  • lrange   后更参数index  范围
  • lpop     取出后消退
  • rpop
  • llen
  • 等等

存储Set:

与list不相同,分歧意出现重复的因素

  • sadd  key     添加 
  • srem  key     删除
  • smembers key   查看成员值
  • scard key     再次回到成员个数
  • 等等

存储Sorted-Set

  • zadd myset 50 p 60 j 70 x     添加有序的set
  • zadd 100 p        假设value相同,分数会覆盖
  • zscore myset p     查询p的分数
  • zcard myset      查询长度
  • zrem  myset  p   删除p
  • 等等

Redis   key的通用操作

  • keys *
  • del key
  • exists key     重临1意味着存在
  • get key
  • rename key    重命名

Redis特性:

  multi  事务块

  exec 执行工作

  discard 撤除事务

澳门永利备用网址 9


Redis 持久化:

  • 逍客DB格局  能够钦命多少秒写入磁盘三回
  • AOF方式 读取log
  • 无持久化
  • 同时RDB和AOF

redis默认是RDB方式:

  优势:

  劣势:

  配置:

    save 900 1

    save 300 10

    save 60 10000

    dbfilename dump.rdb  保存文件名

    dir ./  在当前目录保存

AOF方式:

  优势:

  劣势:

  配置:

    appendonly no/yes  是或不是启用

    #appendfsync always  每修改1回就联手1次

    #appendfsync everysec  每秒同步一次

    #appendfsync no    不同步

  进入appendonly.aof文件删除最终的通令就能够直达撤消的目标


from:http://www.imooc.com/learn/839