redis的安装和简介

redis单机版安装
第一步:
把redis的安装包拷贝到/root/tools/的目录下
解压redis
tar -zxvf redis-3.0.5.tar.gz
编译
make  
安装
make install PREFIX=/root/training/redis
第二步:
配置环境变量
编译安装后的redis文件中只有一个bin文件夹
我们需要创建一个conf目录
mkdir conf
拷贝一份配置文件到conf目录下
cp redis-3.0.5/redis.conf /root/training/redis/conf/
修改redis.conf
vim redis.conf
设置daemonize为yes(后台运行)
第三步启动单机版的redis
到redis/bin的目录下执行
./redis-server.sh ../conf/redis.conf

**redis课存储的数据类型:**
字符串
链表(list)
hash
无序集合(set)
有序集合(zset)

**Redis的命令脚本:**
redis-benchmark  redis的批量操作工具,也是redis的性能测试工具0
redis-check-dump  检查rdb日志是否正常的工具
redis-check-aof   检查aof的日志是否正常的工具
redis-cli    redis客户端
redis-server   redis的启动命令
redis-sentinal   redis的哨兵

**单节点redis配置:**
deamonized no 默认是窗口启动(费守护进程启动),如果想守护进程把no改为yes
port 6379  默认端口是6379  
单节点只需修改这俩个就可以了

启动单节点  
在bin目录下执行 ./redis-server ../conf/redis.conf
使用命令脚本redis-cli可以在命令行客户端下测试redis
./redis-cli  

**redis的事务和锁:**

示例:
set ticket 1
set tom 1000
set lily 100
tom买票
为了保证事务的原子操作我们开启了redis的multi功能
tom客户端
multi
decr ticket             
decrby tom 100    但是执行这里其实redis把所有的操作都放入了队列里边并没有实际自行,在此处用户lily 进行了买票

lily客户端
multi
decr ticket
decrby  lily 100
exec

这个时候tom客户端再进行操作
exec  
这个得到的结果就是ticket变成了-1,这并不是我们想要看到的结果,所以我们使用
redis的锁的功能watch
watch :redis监控某个值得功能,它是乐观的认为这个值不会改变,并不会真正的
锁住这个变量,它是一个乐观锁
set ticket 1
set tom 1000
set lily 1000
tom客户端
watch ticket
multi
decr ticket
decrby tom

lily客户端
multi
decr ticket
decrby lily 100
exce
这时lily客户端可以正常操作,然后再执行tom客户端的提交任务
tom 客户端
exec
这个时候返回时nil,表示并没有操作成功

**redis的消息:**
redis的消息只支持topic功能,也就是只支持取法
使用publish 发布消息  subscribe订阅消息
publish channel msg
发布命令 消息通道  消息内容
subscribe channel 
订阅命令 订阅通道 

**Redis的持久化**
redis的持久化支持俩种方式:rdb 和aof
我们可以利用redis持久化文件做数据迁移
    1、RDB:默认
        (*)本质:就是一个快照,指:每隔一段时间,将内存中的数据dump到文件上。
        (*)生成的策略:
                     秒  个数
                save 900 1     在15分钟内,如果有1个value发生了变化,就执行save命令(执行RDB)
                save 300 10    在5分钟内,如果有10个value发生了变化,就执行save命令(执行RDB)
                save 60 10000  在60秒内,如果有1w个value发生了变化,就执行save命令(执行RDB)
                
                注意:By default Redis will stop accepting writes if RDB snapshots are enabled
                执行RDB的时候,会阻塞当前工作进程,影响性能的。命令:bgsave
    
        (*)参数
            stop-writes-on-bgsave-error yes 当执行RDB的时候出现了错误,停止写入新的数据
            
        (*)缺点:在两次RDB之间,数据可能会丢失。
             优点:恢复的速度快
    
    2、AOF:append only file:日志
        (*)缺点:速度没有RDB快
             优点:能够完全恢复数据
             
        (*)默认关闭,需要配置
                appendonly no 改为yes
                
        (*)优先使用AOF:原因就是AOF的日志是完整的
        (*)参数配置:
            生成策略
            # appendfsync always
            appendfsync everysec
            # appendfsync no
             

          aof日志的重写:当aof日志记录到一定程度的时候,系统会自动的重新把redis中的全部数据重新的写入aof日志当中 
            当执行AOF重写的时候,禁止写入新的AOF日志            
            no-appendfsync-on-rewrite no
            Demo:AOF日志重写
                 bin/redis-benchmark -n 100000
                 
            触发AOF重写的策略
            auto-aof-rewrite-percentage 100 
            auto-aof-rewrite-min-size 64mb
下面是对这俩种aof日志重写策略的原文介绍        
**# Automatic rewrite of the append only file.
# Redis is able to automatically rewrite the log file implicitly calling
# BGREWRITEAOF when the AOF log size grows by the specified percentage.
#
# This is how it works: Redis remembers the size of the AOF file after the
# latest rewrite (if no rewrite has happened since the restart, the size of
# the AOF at startup is used).
#
# This base size is compared to the current size. If the current size is
# bigger than the specified percentage, the rewrite is triggered. Also
# you need to specify a minimal size for the AOF file to be rewritten, this
# is useful to avoid rewriting the AOF file even if the percentage increase
# is reached but it is still pretty small.**

redis可以在AOF日志增长到指定的百分率的时候调用BGREWRITEAOF实现自动日志的重写

它是怎么工作的:Redis会记录最近一次重写日志的大小(如果从redis开启时候没有发生重写操作,那么redis开启时AOF日志大

小将作为这个值)。这个基础大小和当前aof日志大小做比较,当aof日志的大小大于指定的比率时,重写操作将被触发。同时你需要指定最小重写触发的aof文件大小。这个对于避免当比例增长已经达到但是依然日志文件还是很低的问题是非常有用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枣泥馅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值