博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis 简介、安装、配置、启动、连接
阅读量:2420 次
发布时间:2019-05-10

本文共 3812 字,大约阅读时间需要 12 分钟。

目录

 

redis简介

redis是一个c编写的key-value数据库

 

redis的特点

  • 数据存储在内存中,高性能
  • 支持数据持久化,可以将数据持久化到硬盘
  • 支持数据备份。redis存储的数据有2份,一份在内存中,一份持久化到硬盘,会自动将内存中的数据同步到硬盘
  • 数据结构丰富,支持hash,list,set,zset(sorted set)
  • 特性丰富,提供发布/订阅、 key 过期等特性
  • 支持事务

 

redis常见的使用场景

  • 缓存数据库的查询结果
  • 分布式系统的数据共享,比如session共享
  • 任务队列,比如实现秒杀、抢购、抢票等用户|订单队列
  • 数据过期处理(key的有效期),到期自动删除数据

 

redis速度快的原因

  • 把全量数据直接存储在内存中,完全基于内存
  • 数据结构简单,数据操作也简单
  • 使用多路IO复用模型,非阻塞IO
  • 使用单线程处理对客户端的所有读写请求,避免了多线程上下文切换的时间开销

 

redis的使用方式

客户端 <-> 缓存 <-> 数据库

客户端查询时先查缓存,如果缓存中有就直接使用(缓存命中);缓存中没有才去查数据库(缓存穿透),并将查询结果放到缓存中(回种)。

 

linux上安装redis

redis.tar.gz中的是redis源码(c语言),需要自己编译、安装。

 

安装gcc

# 检查有没有安装c语言的编译器gcc,注意gcc版本yum list installed | grep gcc#没有安装就装上yum install gcc#centos8安装redis6、centos7安装redis5编译一般不会出问题,而centos7安装redis6编译时会在server.xxx 点号处大量报错#原因是centos7默认安装的gcc版本是4.8.5,而redis6需要的gcc是5.3及以上版本,需要升级gcc版本#此处将gcc升级为9的版本yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils#永久有效,但需要重新建立会话才会生效(重新打开xshell标签页)echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile#懒得重新打开xshell标签页的话,可以先临时启用gcc9,scl只是临时启用,关闭会话时自动失效#scl enable devtoolset-9 bash#查看gcc版本是否已变成9gcc -v

 

安装redis

# # 将.tar.gz放到/usr/local下,解压tar -xzvf redis-5.0.7.tar.gzrm redis-5.0.7.tar.gz# 进入解压目录cd redis-5.0.7# 编译make# 新建一个目录作为安装目录mkdir /usr/local/redis# 安装,指定安装目录make install PREFIX=/usr/local/redis# 开启防火墙的6379端口firewall-cmd --zone=public --add-port=6379/tcp --permanentfirewall-cmd --reload

解压目录中的很多配置文件、编译生成的程序后续还要使用,不要删除。

 

配置路径、安装redis服务

#切换到安装目录cd /usr/local/redis#新建目录conf、logs、data分别存储配置、日志、数据mkdir conf logs data#logs下新建日志文件touch logs/redis.log#把解压目录下自带的配置文件复制到conf下cp ../redis-6.0.9/redis.conf conf/

 

运行解压目录下的utils/install_server.sh,根据提示设置路径、安装服务。

如果运行install_server.sh时提示

This systems seems to use systemd.

Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!

#编辑解压目录下的utils/install_server.shvim utils/install_server.sh

/bail查找bail,将下面部分注释掉即可

#bail if this system is managed by systemd#_pid_1_exe="$(readlink -f /proc/1/exe)"#if [ "${_pid_1_exe##*/}" = systemd ]#then#       echo "This systems seems to use systemd."#       echo "Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!"#       exit 1#fi

在这里插入图片描述

默认的路径东一个、西一个,使用时不好找,更换为我们上面新建的目录,统一放下安装目录下。

检查一下设置,按Enter安装服务,如果路径写错了Ctrl+C取消安装,重新来。

安装redis服务后,默认已开启redis-server、开机自启。

 

redis的配置文件

编辑redis的配置文件

vim conf/redis.conf# /bind 搜索bind,改为0.0.0.0。默认只绑定了127.0.0.1,只有本地能连接上redis servebind 0.0.0.0#/protected搜索protected,关闭保护模式。默认yes 开启了保护模式,不允许其它机器上的redis客户端连接protected-mode no#/daemonize 搜索daemonize,修改为yes,以守护线程的方式运行#6.x的版本默认是yes,5.x的版本默认是nodaemonize yes#/requirepass 搜索requirepass,设置密码。默认没有密码requirepass abcd#重启redis server,使配置生效service redis_6379 restart

 

redis server的启动、关闭

2种方式

1、执行安装目录下的bin/redis-server

# 启动redis server,指定配置文件位置./redis-server conf/redis.conf# 关闭redis server,通过redis-cli发送给redis server一个shutdown命令./redis-cli shutdown

 

2、服务方式(推荐)

service redis_6379 startservice redis_6379 stopservice redis_6379 restartsystemctl start redis_6379systemctl stop redis_6379systemctl restart redis_6379

安装redis服务时,服务名默认使用redis_port,如果安装服务之前修改了redis的端口号,port部分是修改后的端口号。

不用cd到安装目录,也不用指定配置文件位置,很方便。

 

连接到redis server

2种方式

1、使用安装目录/bin下的redis-cli

# 默认-h是127.0.0.1,-p是6379。如果redis.conf中没有bind 127.0.0.1绑定本地ip,本地是连不上的./redis-cli ./redis-cli -h 192.168.1.7 -p 6379# 如果设置了密码,需要验证密码,xxx是自己的密码auth xxx

 

2、使用Redis Desktop Manager(推荐)

除了能操作redis,还能分析统计redis的情况,下载地址

在这里插入图片描述
验证填redis server的密码,如果redis server没有设置密码,不填验证。

 

win版redis的安装、使用

ms搞了个win版的redis,可在github上下载,但很久没维护了:

 

msi方式会自动安装为win服务,默认已开启redis服务、不需要密码。zip方式可以自己安装为服务:

#先cd到redis目录(redis-server.exe所在目录)#安装redis服务redis-server --service-install redis.windows.conf --loglevel verbose#卸载redis服务#redis-server --service-uninstall#以上2条命令,如果在power命令行执行,前面需要加 .\#默认没有开启redis服务,需要在power命令行开启net start redis#停止redis服务#net stop redis

转载地址:http://kzhlb.baihongyu.com/

你可能感兴趣的文章
微软发布 Azure 物联网安全中心;阿里巴巴在美申请专利,以实现跨区块链统一管理;Google利用足球训练下一代人工智能……...
查看>>
如何证明你不是在开发垃圾?
查看>>
微服务精华问答 | 为什么需要微服务?
查看>>
当我们谈AI时,到底该谈什么?
查看>>
kafka系统设计开篇
查看>>
2019全球编程语言高薪排行榜登场;余承东正式宣布华为IFA2019 或发布麒麟990;OPPO、vivo和小米成立互传联盟…...
查看>>
虚拟化精华问答 | 虚拟化技术分类
查看>>
面向过程语言和面向对象语言的差别:
查看>>
【c语言】基本数据数据类型回顾
查看>>
【c语言】写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1
查看>>
【C语言】【编程练习】字符大小写问题
查看>>
【C语言】【编程练习】判断100到200之间的素数
查看>>
【C语言】将数组A中的内容和数组B中的内容进行交换。(数组一样大)
查看>>
【C语言】实现一个简单小游戏-三子棋
查看>>
【C语言】c语言程序编译运行过程;静态链接,动态链接;
查看>>
【C语言】数据在计算机中的存储与运算
查看>>
【计算机】什么是计算机中的大端小端
查看>>
【C语言】深入理解const,volatile,static关键字
查看>>
【C语言】c/c++程序的内存是如何分配的?
查看>>
【C语言】深入理解C语言的函数调用过程
查看>>