1 Redis入门
1.1 简介
Redis(Remote Dictionary Server 远程字典服务)【Re-di-s】 key-value数据库
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
- Redis不仅仅支持简单的key-value类型的数据,同事还提供list,set,zset,hash等数据结构的存储
- Redis支持数据的备份,即master-slave模式的数据备份
redis是一款高性能的非关系型数据库
一般会将数据存储在关系型数据库中,在非关系型数据库中备份存储关系型数据库的数据
1.2 优势
- 快!在高并发时,数据库容易崩了。Redis运行在内存,能起到一个缓存作用,由于内存的读写速度快于硬盘,因此比其它硬盘存储数据库有明显 的优势。
- 应用于集群的自动容灾切换以及数据的读写分离,减轻高并发的压力。
2 安装
2.1 下载安装包
官网下载地址:https://redis.io/download 目前最新是6.2.6
文件名:redis-6.2.6.tar.gz
需要上传的服务器
或者直接用命令下载,如下 (与安装tomcat一样 推荐在tomcat,这样操作方便)
意思在服务器里面下载,然后解压(需要等待一会儿)
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
2.2 安装
tar xzf redis-6.2.6.tar.gz
- 如:安装包在 /root/redis-6.2.6目录下
- 使用make命令对解压的redis文件进行编译
cd redis-6.2.6
make
- 编译成功后,进入src文件夹,执行make install进行Redis安装
cd src
make install
注:如出现/bin/sh: cc: command not found
错误,是因为没有安装 gcc 环境,使用命令yum install gcc
安装 gcc 环境即可。
2.3 部署
由于src下文件非常多,将几个常用的命令和conf配置文件复制出来进行统一管理
2.3.1 新建bin和etc文件夹
cd .. #确认进入redis-6.2.6中
mkdir etc
mkdir bin
2.3.2 复制到ect
也进入redis-6.2.6目录下,将 redis-6.2.6目录中的redis.conf复制到ect文件夹下
cp redis.conf /root/redis-6.2.6/etc
2.3.3 复制到bin
进入src目录下,将mkreleasehdr.sh
、redis-benchmark
、redis-check-aof
、redis-check-rdb
、redis-cli
、redis-server
、redis-sentinel
文件复制到 bin 文件夹
cd src/
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /root/redis-6.2.6/bin/
2.4 启动Redis服务
切换到bin目录,使用./redis-server
即可启动 redis 服务,但是这种方式没有指明配置文件,redis 将采用默认配置,所以我们需要让 redis 按照我们的配置文件来启动,如下,启动时指定刚才我们复制到 etc 文件夹下的redis.conf
。
cd ..
cd bin
./redis-server /root/redis-6.2.6/etc/redis.conf
redis默认不是后台启动的,修改配置文件 yes(没有操作,好像可以运行)
Daemonize no 改yes
2.5 连接客户端client
redis-cli -p 6379
ping
set name llt
get nmae
keys *
2.6 查看进程是否开启
ps -ef|grep redis
2.7 关闭Redis服务
shutdown
exit
3 性能测试
测试 100个并发连接,100000个请求
在链接情况下,redis-6.2.6/bin 目录下
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
4 基本知识
redis默认有16个数据库 (databases 16)
vim redis.conf #查看配置文件
默认使用的是第0个数据库
123.0.0.1:6379>select 3 #切换数据库
OK
123.0.0.1:6379>dbsize #数据库大小
(integer)0
- **keys *** #查看数据库所有的key
- flushdb #清除当前数据库库
- flushAll #清除全部数据库内容
误区1:高性能的服务器一定是多线程?
误区2:多线程一定比单线程效率高?(CPU上下文会切换!会影响)
5 宝塔安装Redis
如果有宝塔,当然推荐使用他来操作,比较他有一点视图操作,便利!
启动 与 停止,都非常方便!
目前我遇到一个问题,本人目前没有解决呢
宝塔的 redis,注释掉:bind 127.0.0.1,这个功能就使用不到,你们有好的解决办法吗