一、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编译器
yum -y install gcc automake autoconf libtool make
官网步骤:https://redis.io/docs/getting-started/installation/
下载地址:https://redis.io/download/
Redis是C语言开发的,需要进行安装,安装方式在README.MD中即可找到!
wget https://download.redis.io/releases/redis-7.0.4.tar.gz
tar xzf redis-7.0.4.tar.gz
cd redis-7.0.4/
# 编译,make会找本目录下的MakeFile文件,成功后src下会生成可执行文件
make
# 安装到指定目录之后,可以看到对应的目录下只有执行文件,就不和源码混在一起
make install PREFIX=/opt/redis7
Redis编译安装完成之后,会生成几个可执行文件,分别具有不同的作用,我们现在先简单了解下,之后我们陆续会进行介绍!
Redis编译安装完成之后,我们还可以对其配置一个环境变量,以后启动Redis就会变得较为方便一些!
# 配置环境变量
vi /etc/profile
export REDIS_HOME=/opt/redis7
export PATH=$PATH:$REDIS_HOME/bin
# 刷新环境变量
source /etc/profile
#查看环境变量
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 选项可以省略掉!
#在这种状态下,会把get获取的16进制xshell的编码显示;比如显示“中”,而不是16进制
redis-cli --raw
设置密码
Redis可以设置访问密码,可以对用户进行身份验证。没有密码的用户可以登录 Redis,但无法访问!
访问密码的设置位置在 redis.conf 配置文件中。默认是被注释掉的,没有密码。
没有进行密码验证的用户,无法对Redis进行读、写!
对于密码的使用,有两种方式:
- 登录时未使用密码,则访问时先输入密码;
- 登录时直接使用密码登录,访问时无需再输入密码!
2、远程图形化工具访问
- Redis Desktop Manager:https://resp.app/(原来是 http://redisdesktop.com)
- AnotherRedisDeskTopManager:https://gitee.com/qishibo/AnotherRedisDesktopManager/releases
- Redis Insight:https://redis.com/redis-enterprise/redis-insight/
- RedisPlus:https://gitee.com/MaxBill/RedisPlus
前置配置
远程客户端连接之前我们要针对做一些配置,使远程主机上的客户端能够连接并访问到服务端的 Redis。
- IP绑定
还可以配置成bind 0.0.0.0 表示可以和所有的IP进行绑定!
- 关闭保护模式
默认开启保护模式,其只允许本机的客户端访问。但生产中应该关闭,以确保其它客户端可以连接 Redis。
标签:启动,Redis,明解,redis,密码,概述,https,com From: https://www.cnblogs.com/hanyu-2020/p/17201299.html