Redis 简介和安装
# Redis 介绍安装
1.Redis介绍
Remote Dictionary Server (远程字典服务器)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一种高性能的Key-value数据库提供了丰富的数据结构,例如String,Hash,List,Set,SortedSet等等。数据是存在内存中,同时支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性。提供了主从模式、Redis Sentinel和redis Cluster集群架构方案。
2.主要功能
2.1主流功能与应用
1.分布式缓存,挡在Mysql数据之前的带刀侍卫
与传统数据库关系(mysql) Redis是key-value数据库(NoSQL一种),Mysql是关系数据库,Redis数据操作主要在内存,而Mysql主要存储在磁盘;Redis在某一些场景使用中明显优于Mysql,如计数器、排行榜等方面。Redis通常用于一些特定的场景,需要与Mysql一起配合使用,两者并不是相互替换和竞争关系,而是共用和配合使用
2.高可用架构搭配-单机、主从、哨兵、集群
3.分布式锁
2.2总体功能概述
2.3优势
1.性能极高-Redis能读的速度是110000次/秒,写的速度是81000次/秒
2.Redis数据类型丰富,不仅仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构存储
3.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可再次进行加载进行使用
4.Redis支持数据的备份,即master-slave模式的数据备份
2.4总结
3.下载
3.1官网地址
英文官网:https://redis.io/
中文官网:http://www.redis.cn/
3.2 下载
下载地址:https://redis.io/download/
4.安装
4.1环境准备
1.Linux环境安装Redis必须具备gcc编译环境,GCC是linux下的一个编译程序,是C程序的编译工具
2.查看 gcc -v
3.将下载的redis-7.0.10.tar.gz放入 /usr/local/下
4.解压
tar -zxvf redis-7.0.10.tar.gz
5.修改文件名
mv redis-7.0.10 redis
cd redis
make& make install
6.启动和停止
默认启动
如上,在命令redis-server即启动redis服务端。且接受客户端连接
根据设置启动
在 /usr/local/redis目录下建立bin,etc,db三个目录
把/usr/local/redis/src目录下的mkreleasehdr.sh,redis-benchmark, redis-check-rdb, redis-cli, redis-server拷贝到bin目录
在etc下,新建配置redis.conf,内容如下。
/usr/local/redis下新建日志文件log-redis.log,并修改当前用户使用权限。sudo chown -R shoren /usr/local/redis/
启动服务端:redis-server /usr/local/redis/etc/redis.conf
#修改为守护模式
daemonize yes
#设置进程锁文件
pidfile /usr/local/redis/redis.pid
#端口
port 6379
#客户端超时时间
timeout 300
#日志级别
loglevel debug
#日志文件位置
logfile /usr/local/redis/log-redis.log
#设置数据库的数量,默认数据库为16,可以使用SELECT 命令在连接上指定数据库id
databases 16
##指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
#save
#Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
#指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,
#可以关闭该#选项,但会导致数据库文件变的巨大
rdbcompression yes
#指定本地数据库文件名
dbfilename dump.rdb
#指定本地数据库路径
dir /usr/local/redis/db/
#指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能
#会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有
#的数据会在一段时间内只存在于内存中
appendonly no
#指定更新日志条件,共有3个可选值:
#no:表示等操作系统进行数据缓存同步到磁盘(快)
#always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
#everysec:表示每秒同步一次(折衷,默认值)
appendfsync everysec
接着,可以查看日志,如下,表示启动成功:
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.2.5 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 14447
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
14447:M 24 Apr 17:57:33.215 # Server started, Redis version 3.2.5
14447:M 24 Apr 17:57:33.215 * The server is now ready to accept connections on port 6379
14447:M 24 Apr 17:57:33.215 - 0 clients connected (0 slaves), 956832 bytes in use
14447:M 24 Apr 17:57:38.257 - 0 clients connected (0 slaves), 956832 bytes in use
关闭服务端
强行关闭
强行终止redis进程可能会导致数据丢失,因为redis可能正在将内存数据同步到硬盘中。
ps axu|grep redis ## 查找redis-server的PID
kill -9 PID
命令关闭
向redis发送SHUTDOWN命令,即 redis-cli SHUTDOWN 。Redis收到命令后,服务端会断开所有客户端的连接,然后根据配置执行持久化,最后退出。
## 启动redis-server,后台线程
AT8775:redis shoren$ redis-server /usr/local/redis/etc/redis.conf
## 启动成功
AT8775:redis shoren$ ps axu|grep redis
shoren 14948 0.0 0.0 2434840 760 s000 S+ 10:18上午 0:00.00 grep redis
shoren 14946 0.0 0.0 2452968 1492 ?? Ss 10:18上午 0:00.01 redis-server *:6379
## 关闭服务器
AT8775:redis shoren$ redis-cli shutdown
##关闭成功
AT8775:redis shoren$ ps axu|grep redis
shoren 14952 0.0 0.0 2435864 772 s000 S+ 10:19上午 0:00.01 grep redis
启动客户端
默认启动
使用命令redis-cli启动客户端,按照默认配置连接Redis(127.0.0.1:6379)。
指定地址和端口号
使用命令 redis-cli -h 127.0.0.1 -p 6379
关闭客户端
交互模式使用quit
AT8775:redis shoren$ redis-cli -h 127.0.0.1 -p 6379
## 简单使用set、get命令
127.0.0.1:6379> set key value12
OK
127.0.0.1:6379> get key
"value12"
127.0.0.1:6379> quit
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了