Redis 服务
一、Redis简介
1.什么是redis
非关系型数据库,将数据存储在内存的数据库,存储形式 key:value
Redis是一款开源的,ANSI C语言编写的,高级键值(key-value)缓存和支持永久存储NoSQL数据库产品。
Redis采用内存(In-Memory)数据集(DataSet) 。
运行于大多数POSIX系统,如Linux、*BSD、OS X等。
2.为什么使用redis
1.因为功能全面
2.大多数公司都使用
3.redis的功能
1.会话保持(mysql,file)
2.缓存(memcache)
3.消息队列(kafka,zero-mq,rebbit-mq)
4.软件特性
1)透明性:分布式系统对用户来说是透明的,一个分布式系统在用户面前的表现就像一个传统的单处理机分时系统,可让用户不必了解内部结构就可以使用。
2)扩展性:分布式系统的最大特点就是可扩展性,他可以根据需求的增加而扩展,可以通过横向扩展使集群的整体性能得到线性提升,也可以通过纵向扩展单台服务器的性能使服务器集群的性能得到提升。
3)可靠性:分布式系统不允许单点失效的问题存在,它的基本思想是:如果一台服务器坏了,其他服务器接替它的工作,具有持续服务的特性。
4)高性能:高性能是人们设计分布式系统的一个初衷,如果建立了一个透明,灵活,可靠的分布式系统,但他运行起来像蜗牛一样慢,那这个系统就是失败的。
5.redis相关页面
官方网站:https://redis.io/
下载网站:http://download.redis.io/releases/
帮助网站:http://redisdoc.com/
6.redis特点
1.高速读写
redis所有数据都是存储在内存的,使用C语言,速度很快,使用的是单线程
2.数据类型丰富
String: 字符串类型
Hash: 哈希类型
List: 列表类型
Set: 集合类型
Sorted set: 顺序集合类型
3.支持持久化
4.多种内存分配及回收策略
5.支持事物,锁
6.消息队列、消息订阅
7.支持高可用
哨兵
主从
8.支持分布式分片集群
9.支持的服务多
python/java/php/C/nodejs
7.企业缓存数据库解决方案对比
Memcached:
1)优点:高性能读写、单一数据类型、支持客户端式分布式集群、一致性hash多核结构、多线程读写性能高。
2)缺点:无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现、跨机房数据同步困难、架构扩容复杂度高
Redis:
1)优点:高性能读写、多数据类型支持、数据持久化、高可用架构、支持自定义虚拟内存、支持分布式分片集群、单线程读写性能极高
2)缺点:多线程读写较Memcached慢
Tair:
1)优点:高性能读写、支持三种存储引擎(ddb、rdb、ldb)、支持高可用、支持分布式分片集群、支撑了几乎所有淘宝业务的缓存。
2)缺点:单机情况下,读写性能较其他两种产品较慢
8.对比总结
1.Memcached:多核的缓存服务,更加适合于多用户并发访问次数(访问次数较少的应用场景)。
2.Redis:单核缓存服务,在单节点情况下,更加适合少量用户,多次访问的应用场景。
9.redis应用场景
1.会话保持
2.缓存
3.消息队列
结合ELK收集日志
kafka做消息队列,用于数据处理
4.排行榜
5.计数器
点赞点踩
6.社交软件
QQ,微博
二、redis安装
1.下载或上传包
[root@db01 ~]
[root@db01 ~]
2.安装依赖
[root@db01 ~]
3.解压包
[root@db01 ~]
[root@db01 ~]
[root@db01 ~]
4.安装
[root@db01 ~]
[root@db01 redis]
5.启动redis
[root@db01 redis]
6.连接redis
[root@db01 redis]
127.0.0.1:6379>
7.配置环境变量
[root@db01 redis]
export PATH=/usr/local/redis/src:$PATH
[root@db01 redis]
[root@db01 redis]
127.0.0.1:6379>
8.关闭redis
[root@db01 redis]
127.0.0.1:6379> shutdown
[root@db01 redis]
三、redis配置
1.默认配置文件
[root@db01 redis]
-rw-rw-r--. 1 root root 46695 Jun 13 2018 /usr/local/redis/redis.conf
2.编辑配置文件
[root@db01 redis]
bind 127.0.0.1 172.16.1.51
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "/usr/local/redis/redis.log"
databases 16
3.指定配置文件
[root@db01 redis]
[root@db01 redis]
bind 127.0.0.1 172.16.1.51
port 6379
daemonize yes
pidfile /service/redis/6379/redis_6379.pid
loglevel notice
logfile "/service/redis/6379/redis.log"
[root@db01 redis]
四、redis操作
1.基本操作
1.连接redis
[root@db01 redis]
2.查看所有key
127.0.0.1:6379> keys *
1) "k1"
127.0.0.1:6379> DBSIZE
3.添加一条数据
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> keys *
1) "k1"
2) "k2"
4.查看数据
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> get k2
"v2"
5.修改数据(重新赋值)
127.0.0.1:6379> set k1 v1111111
OK
6.修改键名
127.0.0.1:6379> RENAME k1 k11111
OK
127.0.0.1:6379> keys *
1) "k2"
2) "k11111"
7.追加数据
127.0.0.1:6379> APPEND k11111 2222
(integer) 12
127.0.0.1:6379> keys *
1) "k2"
2) "k11111"
127.0.0.1:6379> get k11111
"v11111112222"
8.删除数据
127.0.0.1:6379> del k1 k2
(integer) 2
127.0.0.1:6379> keys *
1) "k11111"
2.配置密码
[root@db01 redis]
... ...
requirepass 123
[root@db01 redis]
[root@db01 redis]
[root@db01 redis]
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> AUTH 123
OK
127.0.0.1:6379> keys *
1) "k1"
[root@db01 redis]
127.0.0.1:6379> keys *
1) "k1"
127.0.0.1:6379> CONFIG GET requirepass
1) "requirepass"
2) "123"
(error) ERR Wrong number of arguments for CONFIG GET
127.0.0.1:6379> CONFIG GET *
127.0.0.1:6379> CONFIG SET requirepass 234
OK
[root@db01 redis]
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> AUTH 234
127.0.0.1:6379> keys *
1) "k1"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现