Redis初识


第1章 Redis初识

Redis 是什么

  • 开源
  • 基于键值的存储服务系统
  • 多种数据结构
    • strings
    • hash
    • linked list
    • sets
    • sorted sets
  • 高性能、功能丰富

Redis 的特性

  1. 速度快
  2. 持久化
  3. 多种数据结构
  4. 支持多种编程语言
  5. 功能丰富
  6. 简单
  7. 主从复制
  8. 高可用、分布式

1. 速度快

  • 10w OPS
  • 数据存储在内存中
  • 使用 C 语言编写
  • 单线程模型

寄存器、缓存器、内存以及磁盘访问速度、容量、价格对比图

内存、SSD 盘、机械盘性能对比

2. 持久化

Redis 将所有数据保持在内存中,对数据的更新将异步地保存到磁盘上

3. 支持多种数据结构

  • Strings
  • Hash
  • Linked Lists
  • Sets
  • Sorted Sets
  • Strings 衍生的数据结构
    • BitMaps : 位图
    • HyperLogLog :超小内存唯一值计数
  • Sets 衍生的数据结构
    • GEO : 地理信息定位

4. 支持多种编程语言

  • java
  • php
  • python
  • ruby
  • lua
  • node.js

5. 功能丰富

  • 发布订阅
  • Lua 脚本
  • 事务
  • Pipeline

6. 简单

  • Redis 3.0 版本只有 23000 行代码
  • 不依赖外部库(like libevent)
  • 单线程模型

7. 主从复制

8. 高可用、分布式

Redis 的典型使用场景

  • 缓存系统
  • 计数器
  • 消息队列系统
  • 排行榜
  • 社交网络
  • 实时系统

Redis 的安装

Redis 安装

1)下载 redis 二进制安装包

wget https://download.redis.io/releases/redis-xxx.tar.gz

2)解压

tar -xzf redis-xxx.tar.gz

3)建立软链接
为了方便管理和升级,建立软链接

ln -s  /path/redis-xxx  /usr/local/redis-xxx

4)编译和安装
切换到 redis 安装目录,编译并安装

cd /usr/local/redis-xxx
make && make install

5)创建工作目录

mkdir /data/redis/redis6379/data

6)在 Redis 目录下创建配置文件并配置相应的参数
在单机多实例下,以端口号来区分不同实例,因此将配置文件带上端口号后缀

cd /data/redis/redis6379
touch redis6379.conf

配置参数

daemonize  yes                           -- 以守护进程的方式启动
pidfile    /var/run/redis6379.pid        -- 进程号存储位置,在单机多实例下要用端口号来区分
port       6379                          -- 对外端口号
dir        "/data/redis/redis6379/data"  -- 工作目录
logfile    "redis-6379.log"              -- 日志文件名

用配置文件启动 Redis

redis-server /data/redis/redis6379/redis6379.conf

可执行文件说明

redis 可执行文件保存在 src 目录内

#find /usr/local/redis/src/ -perm -u+x,-g+x,-o+x | grep redis-
/usr/local/redis/src/redis-benchmark
/usr/local/redis/src/redis-server
/usr/local/redis/src/redis-trib.rb
/usr/local/redis/src/redis-cli
/usr/local/redis/src/redis-sentinel
/usr/local/redis/src/redis-check-rdb
/usr/local/redis/src/redis-check-aof
可执行文件 说明
redis-server Redis 服务器
redis-cli Redis 命令行客户端
redis-benchmark Redis 性能测试工具
redis-check-aof AOF 文件修复工具
redis-check-dump RDB 文件检查工具
redis-sentinel Sentinel 服务器
redis-trib.rb Redis-Cluster 管理工具

三种启动方法

配置文件启动(推荐使用)

redis-server /path/config_file

最简启动

redis-server

动态参数启动

redis-server  --port 6380

三种启动方式比较

  • 生产环境建议使用配置文件来启动
  • 单机多实例配置文件可以用不同端口号区分开

验证是否启动成功

方式1

ps -ef | grep redis

方式2

netstat -antpl | grep redis

方式3

redis-cli -h 127.0.0.1 -p 6379 -a password_of_redis ping

简单的客户端连接

#redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set foo "hello world"
OK
127.0.0.1:6379> get foo
"hello world"

Redis 客户端返回值

1)状态回复

127.0.0.1:6379> ping
PONG
  1. 错误回复
    字符串型的键使用 hget 方法来获取值
127.0.0.1:6379> hget foo field
(error) WRONGTYPE Operation against a key holding the wrong kind of value

3)整数回复

127.0.0.1:6379> incr number
(integer) 1

4)字符串回复

127.0.0.1:6379> get foo
"hello world"

5)多行字符串回复

127.0.0.1:6379> mget foo number
1) "hello world"
2) "1"

Redis 常用配置

  • daemonize : 是否是守护进程(no | yes)
  • port : Redis 对外端口号
  • logfile : Redis 系统日志
  • dir : Redis 工作目录
posted @   甲兵匪已  阅读(92)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示