Redis教程

Redis学习笔记02

本文主要是介绍Redis学习笔记02,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Redis学习笔记

二、下载与安装

2.1 下载

redis官网: http://www.redis.net.cn

image-20210717103126152

图形工具 RDM https://redisdesktop.com/download

2.2 安装

可以在windows系统上安装,但是官方推荐安装在linux系统

1、上传tar.gz包,并解压

tar -zxvf redis-5.0.4.tar.gz

2、安装gcc

redis基于c语言开发,必须安装c语言环境

yum -y install gcc

查看gcc版本

gcc -v

3、进入redis目录,进行编译

检查代码中是否有错误,及运行环境

make

4、编译之后开始安装

make install
Redis可执行文件说明
redis-server: 启动redis
redis-cli:redis命令行客户端
redis-benchmark:redis基准测试工具
redis-check-aof:redis AOF持久化文件检测和修复工具
redis-check-rdb:redis RDB持久化文件检测和修复工具
redis-setinel:启动redis sentinel哨兵模式

Redis基本配置
port:端口
logfile:日志文件
dir:redis工作目录
daemonize:是否以守护进程方式启动redis
https://www.cnblogs.com/wangenzhi/p/10562761.html

2.3 安装后的操作

2.3.1 后台运行方式

redis默认不会使用后台运行,需要修改配置文件:设置daemonize=yes

什么叫做后台启动?和正常启动有什么区别?

正常启动:daemonize no

正常启动会占用进程

redis-server

image-20210717151846264

页面占用了窗口,不能再当前页面执行linux命令,只能先退出redis-server

后台启动:daemonize no

故令其在后台启动,看不到它的启动过程,启动服务时会写成一个进程文件执行

修改redis配置文件 redis.conf

vim /opt/redis/redis.conf

image-20210717151621887

后台启动的命令后需要加上配置文件路径

redis-server /opt/redis/redis.conf

image-20210717152944884

看不到窗口,但实际命令已执行成功

查看redis是否启动

监听6379端口(redis默认端口)

netstat -lntp | grep 6379

image-20210717153219396

正在运行

2.3.2 关闭数据库

关闭数据库

单实例关闭

redis-cli shutdown
image-20210717153507176

多实例关闭:指定端口

redis-cli -p 6379 shutdown
image-20210717153549801

单实例和多实例关闭的区别

redis可以集群,开启多个redis示例,多个实例有不同的端口,需要指定端口号

关闭所有指定端口号的redis实例,关闭的更加彻底

redis多实例部署

单个redis进程一般不能满足实际需求,需要在单台服务器上部署多个redis进程

以充分发挥cpu效能。多台服务器上的redis进程将组成庞大的集群,redis进程可能数千

部署redis实例需要配置像:服务端口、日志文件编号、rdb文件编号等等

Redis单机多实例部署方法

复制多个redis.conf配置文件即可,需要注意每个实例的端口不能冲突

详细配置:https://www.cnblogs.com/youngchaolin/p/11983705.html

为什么是创建多个redis实例而不是创建多个数据库?

1、使用多个数据库通常是很糟糕的,并且有一天会被弃用,而且使用会产生性能上的损失

2、redis是单线程的,使用多实例,将提高性能,因为可以充分利用cpu

3、不同redis实例可以具有不同的持久性配置,然后还有其他优点,例如具有单独的身份验证密码,LRU策略等-只能在实例级别完成。

https://codingdict.com/questions/58232

2.3.3 常用操作

监听指定端口

netstat -lntp | grep 6379

检测后台进程

ps -ef | grep redis

image-20210717160203495

除了监听6379端口验证redis-server启动 netstat -lntp | grep 6379

还可以通过检测后台进程是否存在检验 ps -ef | grep 6379

2.3.4 连接redis并测试

redis-cli

image-20210717160524884

2.3.5 HelloWorld

# 保存数据
set k1 china
# 获取数据
get k1

2.3.6 测试性能

先ctrl + c,退出redis客户端

redis-benchmark

执行命令后,命令不会停止,需要进行手动ctrl + c 停止测试

image-20210717161107660

redis-benchmark 测试性能

注意:要及时退出(5s),因为一直测试,在内存中模拟大量请求。对内存有损耗

其以最大并发数测试性能

执行命令前先退出客户端:ctrl + c

退出性能测试:ctrl + c

[root@localhost bin]# redis-benchmark

====== PING_INLINE ======

 100000 requests completed in 2.30 seconds // 在2.30秒内处理10w次请求

 50 parallel clients

 3 bytes payload

 keep alive: 1

 

75.42% <= 1 milliseconds   // 1ms内处理了75.42%请求,使用频率

98.25% <= 2 milliseconds

99.96% <= 3 milliseconds

100.00% <= 3 milliseconds

43459.36 requests per second // 平均每秒钟处理43459.36个请求

2.3.7 默认16个数据库

vim /opt/redis/redis.conf
127.0.0.1:6379> get k1 # 查询k1
"china"
127.0.0.1:6379> select 16  # 切换16号数据库
(error) ERR DB index is out of range  # 数据库的下标超出了范围
127.0.0.1:6379> select 15  # 切换15号数据库
OK
127.0.0.1:6379[15]> get k1 # 查询k1
(nil)
127.0.0.1:6379[15]> select 0 OK       # 切换0号数据库
127.0.0.1:6379> get k1     # 查询k1
"china"

可以理解为一个数据库中有16张表,redis分为16块区域

查看配置文件,设置数据库数量

image-20210717161557311

设置数据库数。默认数据库是db0,您可以使用select<dbid>在每个连接上选择一个不同的数据库,其中dbid是介于0和 databases-1之间的数字 :0 - 15

切换数据库取key的value,报nil(空值)

image-20210717161733968

2.3.8 数据库键的数量

dbsize

redis在linux支持命令补全(tab)

查看所有键细节 keys *

image-20210717162019484

2.3.9 清空数据库

  • 清空当前库

    flushdb
    
    image-20210717162146827
  • 清空所有库(16个)

    flushall
    
    image-20210717162247629

2.3.10 模糊查询

模糊查询的是key值

模糊查询keys命令,有三个通配符:* 匹配多个 ? 匹配一个 [] 通配内部任一字符

  • * 匹配多个字符

    • 查询所有键

      keys *
      
    • 查询所有以k开头的键

      keys k*
      
      image-20210717162511373
    • 查询所有以e结尾的键

      keys *e
      
      image-20210717162542525
    • 查询所有名中包含k的键

      keys *k*
      
      image-20210717162626033
  • ? 匹配单个字符

    • 模糊查询k字头,并且匹配一个字符

      keys k?
      
    • 你只记得第一个字母是k,他的长度是3

      keys k??
      
  • []:通配括号内的某一个字符

    • 已知其他字母,第二个字母可能是a或e

      keys r[ae]dis
      
      image-20210717162926477

2.3.11 键 (key)

  • exists keyname: 判断键keyname是否存在

  • move keyname dbnum 移动键到几号库

  • ttl 查看键还有多久过期 (-1 永不过期,-2 已过期)

    time to live

  • expire keyname 秒数 为键设置过期时间(生命倒计时)

    image-20210717164344737
  • type keyname 查看键的数据类型

    image-20210717164434334

2.4 卸载 [1]

1、查看redis是否在运行,若在运行,先关闭

使用以下命令查看

ps aux | grep redis

image-20210717110309737

redis-server在6379端口上运行

使用以下命令关闭

kill -9 PID

image-20210717110536560

2、停止redis-server服务

正常停止redis-server服务,使用redis客户端命令

/usr/local/bin/redis-cli shutdown

3、删除/usr/local/bin目录下与redis相关的文件

查看文件:

ls /usr/local/bin/redis-*

image-20210717111014022

删除文件:

rm -rf /usr/local/bin/redis-*

在这里插入图片描述

删除调安装时解压的文件目录和所有文件,我的目录名是redis

tar -zxvf redis

[1] https://www.php.cn/windows-421945.html

这篇关于Redis学习笔记02的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!