大数据-Redis

Redis

Redis和Memcached的区别

(1)持久化

Redis可以做缓存,也可以做存储,支持ADF和RDB两种持久化方式;Memcached只能缓存数据

(2)数据结构

Redis有丰富的数据类型:字符串、链表,Hash、集合,有序集合;Memcached一般就是字符串和对象

安装Redis

(1)下载并解压Redis压缩包

tar -xvzf redis-5.0.5.tar.gz

(2)编译和安装Redis

make
make prefix=/usr/local/redis install

(3)将redis-5.0.5下的redis.conf文件夹移到redis的conf文件夹下

mv redis.conf /usr/local/redis/conf/

(4)修改redis.conf文件的daemonize

daemonize yes

(5)启动redis的服务器

redis-server conf/redis.conf

(6)查看redis的服务器的进程

ps -ef | grep redis

Redis的操作

1、键值操作

keys pattern
randomkey
exists key
type key
expire key seconds
pexpire key milliseconds
persist key

2、数据类型

(1)字符串
set key value
get key
append key value
//设置多个key-value
mset key value
//获取多个值
mget key
//自增和自减
incr key
decr key
(2)链表
//左链表添加多个值
lpush key value
//列出左链表区间元素
lrange key start stop
//获取左链表头部的值
lpop key
//右链表添加多个值
rpush key value
//获取右链表头部的值
rpop key
(3)Hash
//添加单个信息
hset key field value
//添加多个字段信息
hmset key field value
//获取多个字段的值
hmget key field
//获取key的所有信息
hgetall key
(4)无序集合(不可重复)
//添加多个成员
sadd key member
//列出集合中的成员
smembers key
(6)有序集合(可以重复)
//根据score排序
zadd key score member
//获取集合区间的成员
zrange key start stop
//获取集合某个范围的成员
zrangebyscore key min max [WITHSCORES]
zrevrange key start stop [WITHSCORES]
zrangebyscore key min max [WITHSCORES]

Redis的事务

事务

要么全部都要执行,要么就都不执行

特性

原子性,一致性,隔离性、持久性

原子性

事务执行不可分割,要么全部完成,要么全部拉倒不干

一致性

事务使得系统从一个一致的状态转换到另一个一致状态

隔离性

并发访问数据库时,一个用户的事务不能被其他事务所干扰,各并发事务之间数据是独立的

持久性

一个事务被提交之后。它对数据库中数据的改变是持久的。即使数据库发生故障也不应该对其有任何影响

事务的命令

//开启事务
multi
//提交事务
exec
//事务回滚
discard

Redis的锁机制

执行事务操作的时候,如果监视的值发生了变化,则提交失败(watch命令)

Redis的消息机制

消息的类型

(1)Queue消息:队列,点对点
(2)Topic消息:主题,群发:发布消息,订阅消息

Redis消息机制

只支持Topic消息

命令
发布消息:publish
订阅:subscribe
订阅消息(可以用通配符来订阅消息):psubscribe

常用的消息系统

Redis,只支持Topic
Kacka,只支持Topic,需要Zookeeper支持
JMS,Java Messaging Service(Java消息服务标准),支持Queue Topic

Redis的持久化

RDB快照

一种快照,备份。每隔一段时间,将内存汇总的数据保存到硬盘上,产生RDB文件

RDB生成策略
save 900 1       //900秒内,如果有1个key发生变化,执行RDB
save 300 10     //300秒内,如果有10个key发生变化,执行RDB
save 60 10000 //60秒内,如果有10000个key发生变化,执行RDB
其他参数
stop-writes-on-bgsave-error yes //当后台写进程出错时,禁止写入新的数据
rdbcompression yes //是否压缩。压缩会节省空间,但会影响备份和恢复性能
RDB的优点和缺点
优点:快,恢复速度快
缺点:在两次RDB之前,可能会造成数据的丢失。解决方法:AOF

AOF日志

客户端在操作Redis时,把操作记录到文件汇总,如果发生崩溃,读取日志,把操作完全执行一遍。默认是禁用(appendonly no)。AOF开启时,优先使用AOF

AOF记录策略
# appendfsync always  //每个操作都记录日志:优点安全,缺点慢
appendfsync everysec
# appendfsync no  //由操作系统来决定记录日志的方式(一般不会用)
AOF日志重写(overwrite)
//10000次请求
redis-benchmark -n 10000
参数设置
no-appendfsync-on-rewrite no  //执行重写的时候,不写入新的日志
auto-aof-rewrite-min-size 64mb //执行重写的文件大小。到64mb触发重写

Redis的主从复制

作用:主从复制,主从备份,防止主节点宕机;读写分离,分担主节点的任务;任务分离

Redis集群方式

星型模型
优点:效率高,slave地位一样,直接从主节点取出信息
缺点:HA比较麻烦
线型模型
优点:HA简单
缺点:效率不如星型模型

Redis集群配置

Master
bind 192.168.138.130
//关闭RDB和AOF
appendonly no
#save 900 1
#save 300 10
#save 60 10000

Slave1

bind 192.168.138.130
//修改RDB和AOF文件名和端口
port 6380
pidfile /var/run/redis_6380.pid
dbfilename dump6380.rdb
appendfilename "appendonly6380.aof"
slaveof 192.168.138.130 6379

Slave2

bind 192.168.138.130
//修改RDB和AOF文件名和端口
port 6381
pidfile /var/run/redis_6381.pid
dbfilename dump6381.rdb
appendfilename "appendonly6381.aof"
slaveof 192.168.138.130 6379
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值