redis简介与环境搭建

redis简介

特性

1、支持复杂的数据特性的内存“database”
他是一种 key-value的存储结构,而其中又包含了string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)这些复杂的存储结构
2、NoSQL = Not Only SQL(key-value)
不同于传统的关系型数据库,redis属于 nosql(not only sql),传统的数据库可以当作是一张张的表,表中有多种多样的字段,字段间有固定的关系,而对于redis,他是一种 key-value的存储结构
3、高性能
redis基于他的内存操作的基础,使用的是单线程的方式进行执行查询命令,这样省去了锁的处理 带来的麻烦,因为redis直接从内存中取数据非常的快,所以他没有使用并发的方式来执行查询命令。相对的,限制redis查询速度的是网络io,还有机器本身的性能。
4、支持灵活的主从同步
数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器

适应场景

1、数据模型比较简单;
2、需要灵活性更强的IT系统;
3、对数据库性能要求较高;
4、不需要高度的数据一致性;
5、对于给定key,比较容易映射复杂值的环境

redis与memcached的区别

1、网络IO;
Memcached是多线程,实际Memcached所有操作都要对这个全局变量加锁,进行计数等工作,带来了性能损耗;Redis使用单线程
2、内存管理;
Memcached使用预分配的内存池的方式,会造成一定程度的空间浪费;Redis使用现场申请内存的方式来存储数据
3、数据一致性;
Memcached提供了cas命令,可以保证多个并发访问操作同一份数据的一致性问题;Redis没有提供cas 命令,并不能保证这点,不过Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断
4、存储方式;
Memcached基本只支持简单的key-value存储,不支持枚举,不支持持久化和复制等功能;Redis除key/value之外,还支持list,set,sorted set,hash等众多数据结构,提供了KEYS
5、其他方面—持久化
Redis的持久化;
RDB持久化:是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储(容灾恢复较快)
RDB-相关配置:
save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。
save 60 10000 #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。
AOF持久化:AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录(数据可靠性一致性更好)
AOF-相关配置:
appendfsync always #每次有数据修改发生时都会写入AOF文件。
appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。
appendfsync no #从不同步。高效但是数据不会被持久化。

redis安装

安装环境

wget http://download.redis.io/releases/redis-6.0.1.tar.gz(下载)
tar xzf redis-6.0.1.tar.gz(解压)
cd redis-6.0.1
make(编译)–make成功完后 redis对应目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下
sudo make install<安装>
sudo make test<检查安装是否正确>

新创建一个端口

sh redis-6.0.1/utils/install_server.sh <执行创建端口>(需要root权限)
在这里插入图片描述注:红色的部分我们可以自定义,因为默认的路径work权限不能去进行操作,所有需要我们自己去修改这些路径
介绍一下对应的配置文件以及每个配置文件需要我们自己做些什么:

  1. /etc/redis/[port].conf 设置的端口对应的配置文件
  2. /var/lib/redis/[port] 存储文件夹,新建端口,mkdir [port]即可
  3. /var/run/redis_[port].pid pid文件,vim一个空文件
  4. /etc/init.d/redis_[port] init文件,负责一份其它端口的文件,修改文件中的端口号即可
  5. /var/log/redis_[port].log 日志文件,vim一个空文件
    新建一个集群
    ./redis-trib.rb create ----replicas 1 127.0.0.1:1001 127.0.0.1:1002 127.0.0.1:1003 127.0.0.1:1004
    注:新建集群时需要安装ruby和rubygems组件还需要加载对应接口
    <1>yum install ruby
    <2>yum install rubygems
    <3>gem install redis
    QA
    Q:如果自己没有root权限,如何新建一个端口
    A:可以直接复制一个文件的conf配置,直接通过修改conf配置即可完成端口的配置(如下配置内容)
    daemonize yes #是否以后台方式运行
    pidfile “/opt/redis/pid/redis_6372.pid”
    port 6372
    timeout 0
    loglevel notice
    logfile “/opt/soft/redis-4.0.6/log/redis_6372.log”
    databases 16
    stop-writes-on-bgsave-error yes
    dbfilename “dump.rdb”
    dir “/opt/soft/redis-4.0.6/data/6372”
    slave-serve-stale-data yes
    slave-read-only yes
    slave-priority 100
    requirepass qwer1234 #密码
    appendonly no
    appendfsync no
    no-appendfsync-on-rewrite no
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    lua-time-limit 5000
    slowlog-log-slower-than 10000 #慢查询预警阀值,单位微秒
    slowlog-max-len 128 #慢查询最大储存的条数
    hash-max-ziplist-entries 512
    hash-max-ziplist-value 64
    list-max-ziplist-entries 512
    list-max-ziplist-value 64
    set-max-intset-entries 512
    zset-max-ziplist-entries 128
    zset-max-ziplist-value 64
    activerehashing yes
    client-output-buffer-limit normal 0 0 0
    client-output-buffer-limit slave 256mb 64mb 60
    client-output-buffer-limit pubsub 32mb 8mb 60
    protected-mode yes

启动命令
开启端口服务指令:./opt/soft/redis-4.0.6/src/redis-server …/conf/[port].conf
重启指令:
/etc/init.d/redis_[port] stop
/etc/init.d/redis_[port] start
eg:./opt/soft/redis-4.0.6/src/redis-server …/conf/6372.conf
ps -ef|grep redis-server(查看进程)
在这里插入图片描述

如果需要对当前端口的相关内容进行修改设置,直接修改conf文件下对应的配置文件
cat 6372.conf |grep -v ‘#’

redis其他

1、redis建立主从关系----slaveof
修改6372_conf文件,新增主从配置
slaveof 192.168.117.12 6373 ----6372是6373的从节点,6373的数据会被同步到6372这个端口中
2、redis是属于不安全的存储,所以在任何机器上只要知道redis相关配置都可以连接
3、DBSIZE----查看redis的大小
4、–raw---------以中文的方式展示
eg:redis-cli -p 6372 -h localhost --raw
5、redis主从同步的方法
[5.1]config set masterauth ××××× 需要连接的主节点的密码
eg:config set masterauth qwer1234
[5.2]slaveof ip port -----需要连接的主节点的ip和端口
slaveof test.rdb.58dns.org 6372
[5.3]info 等待主从同步
master_link_status:down------down 等待中,若是up就表示同步完了
同步完了后,如果想要去掉主从配置需要如下操作:
[5.4]slaveof no one -----删除从节点配置
[5.5]config set masterauth “” -----将之前设置的主节点密码缓存清空
[5.6]INFO查看即可,这样就保证线上和线下同步了,后续如果有新增数据,只要刷新新数据即可

redis对应相关配置文件

redis.conf

这是redis最重要的配置文件,我们通过redis-server redis.conf 的命令来启动redis

dump.rdb

redis有两种持久化方式,一种是rdb的快照方式,一种是aof的方式,快照方式(当我们的redis down了,只要有这个rdb镜像,只要重启就可以很快的恢复数据,同时,也可以使用这个镜像文件进行数据的迁移)

redis_6372.log

日志是排查问题的主要依据,例如Connection refused(网络问题)Failed Opening .rdb for saving(保存失败) Background saving started (开始备份)

slowlog

名为慢日志,但是他并不是一份真正的日志,他是存在内存中到的,记录了较慢的查询记录,包括查询的key值,查询耗时,方便我们定位超时的问题
使用方式:
slowlog get N-----获取指定数量的慢查询,如果查找全部,去掉N
Slowlog len—查看当前慢查询的长度
SLOWLOG RESET----清空慢查询日志

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值