Redis快速入门

Redis是什么?

Redis是一个开源的key-value存储系统,拥有丰富的数据结构。它属于NoSQL(Not Only SQL)数据库中的键值(Key-Value)存储数据库,它与memcached类似,但是在某些方面优于memcached。

它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。

redis中所有的数据都是字符串.
1.字符串类型(String)
2.散列类型(Hash)
3.列表类型(List)
4.集合类型(Set)
5.有序集合类型(SortedSet)

redis是单线程的,不适合存储比较大的数据.

五种数据类型

String: key - value

常见的命令操作

设置值
set key value

获取值
get key

删除key
del key

检查key是否存在
EXISTS key

查询所有符合指定模式的key
KEYS pattern

加一
inc key
减一

Hash: key - field - value

相当于Java中的Map>类型

设置值
hset key field value

获取值
hget key field

加num
hincrby key field num

操作其实是往String类型的前面加了一个h。
set变成hset
List

List是有顺序可重复的,数据结构为双链表队列,可以从左右两个方向添加元素.

从左添加元素

lpush list a b c d

从右向左
rpush list a b c d

获取列表长度
LLEN key


Set

Set无序,不能重复.

添加元素
sadd set a b c d d

查询元素
smembers set

删除元素
SPOP key
SortedSet(zset)

zset有顺序,不能重复
适合做排行榜,排序需要一个分数属性

Redis为什么好

1、速度快(原因:I、Redis以内存作为数据存储介质,所以读写效率特别高。II、单线程操作,避免频繁上下文切换。III、采用了epoll机制。)

2、支持多种数据类型。支持string,list,set,hash,sorted set。

3、支持事务。所有的操作都是原子性的。要么全部做,要么全部都不做。

4、丰富的特性。可用与缓存,消息,按key设置过期时间。过期后自动删除。

Redis在哪方面比Memcache好?

1、存储方式:Redis支持数据持久化,运行的时候会备份在磁盘,断电或者重启后缓存数据还可以重新加入内存种

2、Memcached所有的值都是使用简单字符串存储。Redis的多种数据类型更加丰富。

3、Redis速度比Memcache快

Redis应用场景

1.缓存
2.分布式集群架构中的session分离
3.任务队列(秒杀、抢购、12306等等)
4.应用排行榜(SortedSet)
5.网站访问统计
6.数据过期处理(expire)

Redis持久化配置

Redis强劲的性能很大程度上是由于其将所有数据都存储在了内存,然而当Redis重启之后,所有存储在内存中的数据就会丢失。例如:

  • 将Redis最为数据库使用的时候, 重启之后数据丢失。
  • 将Redis作为缓存服务器,但缓存被穿透后会对性能造成较大影响,所有缓存同时失效会导致缓存雪崩,从而使服务无法响应。

我们希望Redis能将数据从内存中以某种形式同步到硬盘中, 使得重启之后可以根据硬盘中的记录恢复数据。这一过程就是持久化。

Redis 支持两种方式的持久化, 一种是RDB方式, 另一种是AOF方式。

  • 前者 会根据指定的规则“定时”将内存中的数据存储在硬盘
  • 后者 在每次执行命令后将命令本身记录下来。

RDB方式

RDB持久化是通过快照完成的。当满足一定条件redis会自动将内存的数据做快照并且存到硬盘里。

持久化的配置文件

在redis.conf定义。(Yum默认安装的是在/etc/redis.conf)

由时间窗口以及改动的键个数组成

默认安装之后有三个条件。

save 900 1 #900秒内有至少1个键被更改则进行快照
save 300 10   # 300秒内有至少10个键被更改则进行快照
save 60 10000 # 60秒内有至少10000个键被更改则进行快照

他们之间的条件是或,只要满足一条就会执行。

默认存储的快照文件及其目录

1559146211185

237行是文件名,247行是所在目录的名字,可以修改。

AOF方式

开启AOF持久化后每执行一条会更改Redis中的数据的命令,Redis就会将该命令写入硬盘中的AOF文件。

AOF是默认不开启的。

    593 appendonly no
    594 
    595 # The name of the append only file (default: "appendonly.aof")
    596 
    597 appendfilename "appendonly.aof"

把appendonly改成yes,就ok。

AOF文件保存的位置和RDB文件的位置是一致的。

然后appendfilename "appendonly.aof"是默认的文件名。

数据恢复

如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。

Redis允许同时开启AOF和RDB,既保证了数据安全又使得进行备份等操作十分容易。此时重新启动Redis后Redis会使用AOF文件来恢复数据,因为AOF方式的持久化可能丢失的数据更少

你可能感兴趣的:(nosql)