Redis的安装使用介绍


Redis介绍

Redis简介

Redis 是完全开源的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他key-value缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

Redis优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 丰富的数据类型 – Redis支持二进制案例的Strings, Lists, Hashes, Sets及Ordered Sets数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis与其他key-value存储的不同之处

  • Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
  • Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,应为数据量不能大于硬件内存。在内存数据库方面的另一个优点是, 相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。 同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

Redis安装和使用

Redis安装

安装Redis可以参考文档,这里使用docker的方式来操作

  • 新建测试目录:mkdir /home/redistest && cd /home/redistest/
  • 新建docker-compose.yml文件:vim docker-compose.yml,写入如下内容,保存退出,注意此处把端口映射为 15001, 检查防火墙和与云服务器运营商的防火墙端口放行规则。 推荐使用docker-compose来启动容器,它实际上等同于如下执行命名docker run -itd --restart=always --name redis-test -p 15001:6379 -v /home/reidstest:/data redis redis-server --requirepass 123456

注意需要放置在公网访问的redis服务需要考虑几点

1.防火墙规则是否放行,运营商的防火墙是否放行
2.bind的IP需要设置成为0.0.0.0,才能让其他所有的服务访问的到(不过这样做也不太安全,需要设置密码),最好是绑定到指定的IP,并设置访问密码

  • 启动容器:docker-compose up -d
  • 查看容器状态:docker ps -a | grep redis
  • 查看redis服务:docker logs -f redis-test

Redis-cli的使用

  • 第一种:进入容器并使用redis-cli连接redis服务通过交互式终端来操作数据库:docker exec -it redis-test redis-cli
  • 这里演示第二种: 先进入容器内的bash终端:docker exec -it redis-test /bin/bash

    接着执行 redis-cli进入redis-cli交互终端 , 输入 auth 123456进行鉴权

    quit 退出 redis-cli客户端
    String 类型操作命令 set get keys del incr 等等
    Hash 类型操作指令 hset hget hgetall hmset 等等
    List 类型操作指令 rpop lpop rpush lpush 等等
    订阅 发布 subscribe publish

    使用 subscribe + 主题名 订阅主题

    使用 publish + 主题名 + 消息 向对应主题发布消息

  • 服务相关 & 备份恢复
    1. client listclient kill

      登录 redis-cli 后,运行client list,返回所有连接到服务器的客户端信息和统计数据 idle 代表空闲时长 idle=0 是当前的client
      client kill ip:port 关闭客户端

    2. showlog 调试redis的重要命令
    3. 清空数据库的命令 flushall 、flushdb 慎重

      flushall清空整个 Redis 服务器的数据(删除所有数据库的所有key)。
      flushdb清空当前数据库中的所有 key。

参考资料


文章作者: XiaoSenMao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 XiaoSenMao !
  目录