明解Redis(一)概述

打印 上一主题 下一主题

主题 1025|帖子 1025|积分 3075


一、Redis简介

Redis全称为 Remote Dictionary Server(远程词典服务),开源(BSD许可)的,使用 C 语言开发的。
Redis是内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
内置了复制,LUA脚本,LRU驱动事件,事务和不同级别的磁盘持久化,并通过Redis哨兵和自动分区提供高可用性。
1、Redis背景

Redis的开发作者是一名意大利的程序员,名字为Salvatore Sanfilippo(网名:antirez)

Salvatore 最初创建 Redis 是为了扩展实时日志分析工具LLOOGG ;早先LLOOGG是基于MySQL的,MySQL的数据是存在磁盘的,存在I/O性能瓶颈,这促使Salvatore编写一个内存型数据库。

让基本的 Redis 服务器运行之后,他决定与其他人分享这项工作,在2009年将Redis正式开源。
2、Redis特性


  • 速度快、性能高

    • 基于内存
    • 命令执行单线程,避免了不必要的上下文切换及竞争条件
    • key-value 存储,底层数据结构加持
    • IO多路复用
    • 多线程 IO 模型
    • 支持 Pipelining 命令,可一次发送多条命令来提高吞吐率,减少通信延迟

  • 原子操作
  • 丰富的数据结构,针对value的

    • String(字符串)
    • List(链表)
    • Set(集合)
    • Zset(sorted set --有序集合)
    • Hash(哈希类型)
    • Bitmaps:一般用于大数据量的二值性统计,比如签到、打卡
    • HyperLogLog:用于对数据量超级庞大的日志做去重统计
    • Geospatial:地理空间,其主要用于地理位置相关的计算
    • Stream:可实现简单的消息中间件的功能(publish/subscribe)

  • 提供了众多个性化功能

    • 慢查询分析
    • 性能测试
    • Pipeline
    • 简单事务
    • Lua脚本扩展
    • 发布/订阅

  • 持久化
  • 主从复制
  • 高可用、分布式集群
  • 客户端语言广泛
3、Redis网站

官方文档:https://redis.io/
中文参考:
作者博客:http://antirez.com/latest/0
二、Redis安装

前置环境:gcc编译器
  1. yum -y install gcc automake autoconf libtool make
复制代码
官网步骤:https://redis.io/docs/getting-started/installation/
下载地址:https://redis.io/download/
Redis是C语言开发的,需要进行安装,安装方式在README.MD中即可找到!
  1. wget https://download.redis.io/releases/redis-7.0.4.tar.gz
  2. tar xzf redis-7.0.4.tar.gz
  3. cd redis-7.0.4/
  4. # 编译,make会找本目录下的MakeFile文件,成功后src下会生成可执行文件
  5. make
  6. # 安装到指定目录之后,可以看到对应的目录下只有执行文件,就不和源码混在一起
  7. make install PREFIX=/opt/redis7
复制代码
Redis编译安装完成之后,会生成几个可执行文件,分别具有不同的作用,我们现在先简单了解下,之后我们陆续会进行介绍!


Redis编译安装完成之后,我们还可以对其配置一个环境变量,以后启动Redis就会变得较为方便一些!
  1. # 配置环境变量
  2. vi /etc/profile
  3. export REDIS_HOME=/opt/redis7
  4. export PATH=$PATH:$REDIS_HOME/bin
  5. # 刷新环境变量
  6. source /etc/profile
  7. #查看环境变量
  8. echo $PATH
复制代码
Redis官方并没有提供支持Windows环境下的安装包,生产环境下基本也都是Linux服务器为主!
官方虽然没有提供Windows版本的Redis,但是有一些爱搞事情的开发者对其做了维护!
Windows环境下安装:https://github.com/zkteco-home/redis-windows
三、启动服务

1、默认前台启动

在任意目录执行  redis-server 命令即可启动 Redis,但是这种启动方式会阻塞当前命令行窗口!

再开一个窗口查看Redis进程:ps -ef | grep redis
通过 Ctrl + C 可以停止 Redis!

2、命令式后台启动

使用 nohub 命令,末尾再添加一个&符,可以使要启动的程序在后台以守护进程方式运行。

这样的好处是,进程启动后不会占用一个会话窗口,且其还会在当前目录,即运行启动命令的当前目录中创建一个 nohup.out 文件用于记录 Redis 的操作日志。
停止Redis服务

redis-cli shutdown

3、配置式后台启动

1)修改Redis编译安装目录下的redis.conf配置文件,最好先复制一份!

2)修改配置

3)启动Redis

4、配置Linux服务启动

我们还可以将Redis配置成一个对应的服务,只需要执行Redis源码目录下的utils下 install_server.sh 脚本即可!
如果执行的时候有报如下的错误:

这时候我们只需要将脚本文件打开,将里面报错的文本内容注释掉即可!

这时候我们再次执行 install_server.sh 脚本,即可看到以下的界面:
这里我们先选择默认端口,也可以自己进行端口配置!
一个物理机可以有多个Redis进程,通过端口号进行区分!
可执行程序就一份,但内存中如果存在多个实例需要有各自的配置文件、持久化目录等资源

查看服务状态:service redis_6379 status
关闭/启动Redis服务:service redis_6379 stop/start
查看Redis进程:ps -ef | grep redis

四、Redis客户端

1、本地命令行工具访问

本地命令行客户端的工具为 redis-cli
基本格式:redis-cli -h (host}-p {port}

  • -h:指定要连接的 Redis 服务器的 IP
  • -p:指定要连接的 Redis 的端口号

若连接的是本机 Redis,且端口号没有改变,保持默认的 6379,则-h 与-p 选项可以省略掉!
  1. #在这种状态下,会把get获取的16进制xshell的编码显示;比如显示“中”,而不是16进制
  2. redis-cli --raw
复制代码

设置密码

Redis可以设置访问密码,可以对用户进行身份验证。没有密码的用户可以登录 Redis,但无法访问!
访问密码的设置位置在 redis.conf 配置文件中。默认是被注释掉的,没有密码。

没有进行密码验证的用户,无法对Redis进行读、写!

对于密码的使用,有两种方式:

  • 登录时未使用密码,则访问时先输入密码;


  • 登录时直接使用密码登录,访问时无需再输入密码!


2、远程图形化工具访问

前置配置

远程客户端连接之前我们要针对做一些配置,使远程主机上的客户端能够连接并访问到服务端的 Redis。

  • IP绑定

还可以配置成bind 0.0.0.0 表示可以和所有的IP进行绑定!


  • 关闭保护模式
默认开启保护模式,其只允许本机的客户端访问。但生产中应该关闭,以确保其它客户端可以连接 Redis。


出处:https://www.cnblogs.com/hanyu-2020/
---------------------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

本文内容若有疏漏请多多包涵,如有错误麻烦请指正,如有想法交流非常欢迎在下方评论!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表