redis

 

一、数据库分类 
数据库模型:
    网状:第一代模型,实现太难,基本上没有成体数据库
    层次:第二代模型,可以实现,ibm
    关系:第三代模型,当前传统主流,oracle、ibm db2、sql server、mysql、postgresql(greenplum)
    非关系:
            文档:mongodb
            键值对:redis
            存储引擎:elasticsearch
            
关系和非关系数据库的区别:
    关系型: 安全、速度稍慢            
    非关系型:速度快,安全性稍差
    
二、Redis重要特性 
1.速度快
  c语言写的 
  代码优雅
  单线程架构,并发能力稍差,但可以用集群弥补                      
2.支持多种数据结构
  字符串,哈希,列表,集合,有序集合
3.丰富的功能
  天然计数器
  健过期功能
  消息队列
4.支持客户端语言多
  php,java,python
5.数据持久化(memcache 无法持久化)
  所有的数据都运行在内存中
  支持2种格式持久化数据AOF RDB AOF&RDB
6.自带多种高可用架构
  主从
  哨兵
  集群
  
三、redis应用场景
1.缓存-键过期时间
  把session会话存在redis,过期删除
  缓存用户信息,缓存Mysql部分数据,用户先访问redis,redis没有再访问mysql
  商城优惠卷过期时间
2.排行榜-列表&有序集合
  热度/点击数排行榜
  直播间礼物积分排行
3.计数器-天然支持计数器
  帖子浏览数
  视频播放数
  评论数
  点赞/踩
4.社交网络-集合
  粉丝
  共同好友 
  兴趣爱好
  标签
5.消息队列-发布订阅
  配合ELK缓存收集来的日志

#########################################################################

安装redis

1. 准备安装和数据目录

    mkdir -p /data/soft
    mkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}

2.下载redis安装包

    cd /data/soft
    wget http://download.redis.io/releases/redis-5.0.7.tar.gz

3.解压redis到/opt/redis_cluster/  

    tar xf redis-5.0.7.tar.gz -C /opt/redis_cluster/
    ln -s /opt/redis_cluster/redis-5.0.7  /opt/redis_cluster/redis

4.切换目录安装redis

    cd /opt/redis_cluster/redis
    make && make install     

5.编写配置文件

vim /opt/redis_cluster/redis_6379/conf/6379.conf
添加:
bind 127.0.0.1 192.168.8.10
port 6379
daemonize yes
pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid
logfile /opt/redis_cluster/redis_6379/logs/redis_6379.log
databases 16
dbfilename redis.rdb
dir /opt/redis_cluster/redis_6379
保存退出

6.启动当前redis服务

redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

7.关闭redis服务

redis-cli shutdown 

8.登录redis

redis-cli  #本机登录
redis-cli -h 192.168.8.10 -p 6379    #其他主机登录


#####################################################################

redis基本操作命令

1.全局命令

    KEYS *  #列出所有键值名,但在企业环境禁止使用
    DBSIZE  #查看有多少键值数
    EXISTS    #查看键值是否存在
    EXPIRE k2 20    #设置K2过期时间为20秒,20秒后k2自动取消
    PERSIST k2        #取消k2的过期时间
    TTL k2    #查看k2的生命周期
    TYPE    #查看数据类型

2.字符串类型:string

    SET    k3 3        #创建键值
    GET    k3            #查看键值
    DEL    k2            #删除键值 
    INCR k3            #键值k3为整数,递增加1
    INCRBY k3 10      #递增k3的量值10 
    MSET k4 v4 k5 v5 k6 v6 k7 v7      #批量创建键值
    MGET k4 k5 k6 k7                #批量查看键值    

3.列表:list

    RPUSH list1 1 2 3 4  #创建列表list1,值为1 2 3 4
    RPUSH list1 5 6 7 8     #在list1右侧添加5 6 7 8
    LPUSH list1 0          #在list1左侧添加0
    LRANGE list1 0  -1   #查看list1所有值
    RPOP list1             #删除右侧最后一个值
    LPOP list1             #删除左侧第一个值
    LTRIM list1 0 2         #仅保留前3位,其他值删除

4.哈希:hash

    HMSET user:1000 username zhangsan age 17 job it  #创建hash键值user:1000 
    HGET user:1000 username                #查看键值中username参数
    HGET user:1000 age                #查看键值中age参数
    HGET user:1000 job                 #查看键值中job参数
    HMSET user:1000 tel 18866668888             #添加值tel

5.集合:set

    SADD set1 1 2 3        #创建集合set1
    SMEMBERS set1        #查看集合set1
    SADD set1 1 4        #为集合set1添加值1 4 ,但集合特性是去除重复,所以1无法再添加
    SREM set1 1 4        #删除集合的值1 4
    sadd set2 1 4 5        #创建第二个集合set2
    SDIFF set1 set2        #求差集
    SINTER set1 set2    #求交集
    SUNION set1 set2    #求并集

#########################################################################

1.redis持久化: 

    RDB:生成时间点快照,保存于硬盘
        优点:速度快,适合做备份,能做主从复制,单开子进程进行rdb操作不影响主业务
        缺点:会有部分数据丢失
        
    AOF:记录所有写操作命令,通过再次执行这些命令还原数据
        优点:最大程度保证数据不丢失
        缺点:日志记录量太大

2.RDB配置:

redis-cli    登录redis
bgsave        rdb保存命令

vim /opt/redis_cluster/redis_6379/conf/6379.conf    
添加:
save 900 1           #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
save 300 10          #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。
save 60 10000        #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照

3.AOF配置

vim /opt/redis_cluster/redis_6379/conf/6379.conf
添加:
appendonly yes            #启用AOF持久化
appendfilename "redis.aof"    #指定AOF文件名
appendfsync everysec        #每秒同步一次

4.重启redis

redis-cli shutdown
redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

########################################################################

环境:

    主服务器:192.168.8.10
    从服务器:192.168.8.20

1.redis主从复制  

       为解决单点故障把数据复制到一个或多个副本副本服务器(从服务器),实现故障恢复和负载均衡    

2.开启第二台服务器,安装redis

(1)把第一台服务器的redis安装目录,scp到第二台服务器上
    scp -rp /opt/redis_cluster/ root@192.168.8.20:/opt
(2)在第二台服务器上,make install安装redis
    cd /opt/redis_cluster/redis
    make install
    vim /opt/redis_cluster/redis_6379/conf/6379.conf 
    修改:
    bind 127.0.0.1 192.168.8.20
    slaveof 192.168.8.10 6379
    保存退出
(3)启动服务
    redis-server /opt/redis_cluster/redis_6379/conf/6379.conf
(4)主服务器上新建键值,测试从服务器自动同步

(5)从服务器在同步过程中,只能复制主数据库的数据,不能手动添加修改数据;
    如果从服务器非要修改数据,需要断开同步:
    redis-cli slaveof no one 
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值