本文共 3812 字,大约阅读时间需要 12 分钟。
redis是一个c编写的key-value数据库
redis的特点
redis常见的使用场景
redis速度快的原因
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
解压目录中的很多配置文件、编译生成的程序后续还要使用,不要删除。
#切换到安装目录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的配置文件
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
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到安装目录,也不用指定配置文件位置,很方便。
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没有设置密码,不填验证。
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/