EmmmuaCode EmmmuaCode
首页​
导航🚀​
  • 数据结构
  • 计算机网络
  • Java基础

    • JavaSE
    • JVM虚拟机
    • JUC并发编程
  • JavaWeb

    • Servlet
    • MVC
    • filter|listener
  • HTML
  • CSS
  • JavaScript
  • Vue
  • uni-app
  • Spring5
  • SpringMVC
  • SpringBoot2
  • SpringCloud
  • SpringSecurity
  • 搜索引擎

    • ElasticSearch
  • 消息队列

    • RabbitMQ
  • 服务器

    • Nginx🌐
  • 服务框架

    • Dubbo
  • Python基础
  • 数据分析
  • Hadoop
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • NoSQL数据库概论
    • Redis
    • MongoDB
    • HBase
  • 框架

    • MyBatis
    • MyBatis-Plus
    • ShardingSphere
  • 部署

    • Linux
    • Docker
  • 管理

    • Maven
    • Git
  • 友情链接
  • 优秀博客文章
  • 索引

    • 分类
    • 标签
    • 归档
  • 其他

    • 关于
Github (opens new window)

wufan

海内存知己,天涯若比邻。
首页​
导航🚀​
  • 数据结构
  • 计算机网络
  • Java基础

    • JavaSE
    • JVM虚拟机
    • JUC并发编程
  • JavaWeb

    • Servlet
    • MVC
    • filter|listener
  • HTML
  • CSS
  • JavaScript
  • Vue
  • uni-app
  • Spring5
  • SpringMVC
  • SpringBoot2
  • SpringCloud
  • SpringSecurity
  • 搜索引擎

    • ElasticSearch
  • 消息队列

    • RabbitMQ
  • 服务器

    • Nginx🌐
  • 服务框架

    • Dubbo
  • Python基础
  • 数据分析
  • Hadoop
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • NoSQL数据库概论
    • Redis
    • MongoDB
    • HBase
  • 框架

    • MyBatis
    • MyBatis-Plus
    • ShardingSphere
  • 部署

    • Linux
    • Docker
  • 管理

    • Maven
    • Git
  • 友情链接
  • 优秀博客文章
  • 索引

    • 分类
    • 标签
    • 归档
  • 其他

    • 关于
Github (opens new window)
  • MySQL-基础

    • MySQL-简介
    • MySQL-CRUD
    • MySQL-函数
    • MySQL 多表查询
    • MySQL 约束与自增长
    • MySQL 索引与事务
    • MySQL 表类型和存储引擎
    • MySQL 视图与管理
  • MySQL-进阶

    • MySQL 存储引擎
    • MySQL 索引
    • MySQL SQL优化
    • MySQL 视图/存储过程/触发器
    • MySQL 锁
    • MySQL InnoDB引擎
    • MySQL 管理
  • MySQL-运维

    • MySQL 日志
    • MySQL 主从复制
    • MySQL 分库分表
    • MySQL 读写分离
  • NoSQL 数据库概论

    • 非关系型数据库
    • NoSQL数据库理论基础
    • NoSQL数据库分类
  • Redis

    • Redis 数据库简介
    • Redis 概述安装
      • 应用场景
        • 配合关系型数据库做高速缓存
        • 多样的数据结构存储持久化数据
      • Redis 安装
        • 安装版本
        • 安装步骤
        • 后台启动(推荐)
        • 客户端访问redis
        • 前台启动
      • Redis介绍相关知识
    • 常用五大数据类型
    • Redis 配置文件
    • Redis 发布和订阅
    • Redis 新数据类型
    • Redis Java整合
    • Redis 事务与锁
    • Redis 持久化操作
    • Redis 主从复制
    • Redis 集群搭建
    • Redis 缓存问题
    • Redis 分布式锁
    • Redisson 的应用
    • Redis 6.0新功能
  • MongoDB

    • MongoDB 相关概念
    • MongoDB 安装
    • MongoDB 常用命令
    • MongoDB 索引-Index
    • MongoDB 整合Java案例
    • MongoDB 集群和安全
  • HBase

    • HBase简介
    • HBase系统架构
    • HBase数据定义
    • HBase数据操作
    • HBase基本原理
  • MyBatis

    • MyBatis 入门案例
    • XML 配置
    • XML 映射文件
    • 动态SQL
    • 缓存
    • MyBatis的逆向工程
    • 分页插件
  • MyBatis-Plus

    • MyBatis-Plus 简介
    • MyBatis-Plus 入门案例
    • MyBatis-Plus 基本CRUD
    • MyBatis-Plus 常用注解
    • 条件构造器和常用接口
    • MyBatis-Plus 插件
    • MyBatis-Plus 通用枚举
    • MyBatis-Plus 代码生成器
    • MyBatis-Plus 多数据源
    • MyBatisX插件
  • ShardingSphere

    • ShardingSphere_高性能架构模式
    • ShardingSphere 简介
    • ShardingSphere 主从同步
    • ShardingSphere_JDBC 读写分离
    • ShardingSphere-JDBC垂直分片
    • ShardingSphere-JDBC水平分片
    • 启动ShardingSphere-Proxy
    • ShardingSphere-Proxy读写分离
    • ShardingSphere-Proxy垂直分片
  • studynotes
  • database
  • Redis
wufan
2022-06-10
目录

Redis 概述安装

# Redis 概述安装

  • Redis是一个开源的key-value存储系统。
  • 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
  • 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
  • 在此基础上,Redis支持各种不同方式的排序。
  • 与memcached一样,为了保证效率,数据都是缓存在内存中。
  • 区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
  • 并且在此基础上实现了master-slave(主从)同步。

# 应用场景

# 配合关系型数据库做高速缓存

  • 高频次,热门访问的数据,降低数据库IO
  • 分布式架构,做session共享

image

# 多样的数据结构存储持久化数据

image

# Redis 安装

  • Redis官方网站 (opens new window)
  • Redis中文官方网站 (opens new window)

# 安装版本

for Linux(redis-6.2.1.tar.gz)

不用考虑在windows环境下对Redis的支持

# 安装步骤

  • 准备工作:下载安装最新版的gcc编译器

  • 使用XFTP工具将redis压缩包上传到Linux系统中

mkdir /opt/redis
1

image

  • 安装C 语言的编译环境
yum install centos-release-scl scl-utils-build
1
yum install -y devtoolset-8-toolchain
1
scl enable devtoolset-8 bash
1
  • 测试gcc版本gcc --version

 




[root@master redis]# gcc --version
gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1
2
3
4
5
  • 解压文件
cd /opt/redis
tar -zxvf redis-6.2.1.tar.gz
1
2
  • 解压完进入目录
[root@master redis]# cd redis-6.2.1/
[root@master redis-6.2.1]# ls
00-RELEASENOTES  CONDUCT       COPYING  INSTALL   MANIFESTO  redis.conf  runtest-cluster    runtest-sentinel  src    TLS.md
BUGS             CONTRIBUTING  deps     Makefile  README.md  runtest     runtest-moduleapi  sentinel.conf     tests  utils
1
2
3
4
  • 在redis-6.2.1目录下再次执行make命令
 






[root@master redis-6.2.1]# make
cd src && make all
make[1]: 进入目录“/opt/redis/redis-6.2.1/src”
    CC Makefile.dep
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-benchmark
...
1
2
3
4
5
6
  • 执行make install
 











[root@master redis-6.2.1]# make install
cd src && make install
make[1]: 进入目录“/opt/redis/redis-6.2.1/src”
    CC Makefile.dep

Hint: It's a good idea to run 'make test' ;)

    INSTALL install
    INSTALL install
    INSTALL install
make[1]: 离开目录“/opt/redis/redis-6.2.1/src”
1
2
3
4
5
6
7
8
9
10
11
  • 切换到/usr/local/bin,并查看


 

[root@master redis-6.2.1]# cd /usr/local/bin
[root@master bin]# ls
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server
1
2
3

# 后台启动(推荐)

  • 拷贝一份redis.conf到其它目录
 
 


 

[root@master redis-6.2.1]# cd /opt/redis/redis-6.2.1/
[root@master redis-6.2.1]# ls
00-RELEASENOTES  CONDUCT       COPYING  INSTALL   MANIFESTO  redis.conf  runtest-cluster    runtest-sentinel  src    TLS.md
BUGS             CONTRIBUTING  deps     Makefile  README.md  runtest     runtest-moduleapi  sentinel.conf     tests  utils
[root@master redis-6.2.1]# cp redis.conf /etc/redis.conf
1
2
3
4
5
  • 修改etc目录下的redis.conff(247行)文件将里面的daemonize no 改成 daemonize yes,让服务在后台启动
[root@master redis-6.2.1]# cd /etc/
[root@master etc]# vim redis.conf
1
2
  • 切换到/usr/local/bin,使用启动命令redis-server /etc/redis.conf
[root@master etc]# cd /usr/local/bin/
[root@master bin]# redis-server /etc/redis.conf
1
2
  • 查看关于redis线程状态
[root@master bin]# ps -ef|grep redis
root       7174      1  0 11:30 ?        00:00:00 redis-server 127.0.0.1:6379
root       7191   2210  0 11:32 pts/0    00:00:00 grep --color=auto redis
1
2
3

# 客户端访问redis

  • 使用命令redis-cli,使用ping查看链接状态
[root@master bin]# redis-cli
127.0.0.1:6379> ping
PONG
1
2
3
  • 关闭redis,使用命令shutdown
127.0.0.1:6379> shutdown
not connected>
1
2

多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown

也可以通过杀进程关闭kill -9 进程号

# 前台启动

使用命令redis-server

[root@master bin]# redis-server
6970:C 10 Jun 2022 11:19:08.451 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
6970:C 10 Jun 2022 11:19:08.451 # Redis version=6.2.1, bits=64, commit=00000000, modified=0, pid=6970, just started
6970:C 10 Jun 2022 11:19:08.451 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
6970:M 10 Jun 2022 11:19:08.451 * Increased maximum number of open files to 10032 (it was originally set to 1024).
6970:M 10 Jun 2022 11:19:08.451 * monotonic clock: POSIX clock_gettime
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 6.2.1 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 6970
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

6970:M 10 Jun 2022 11:19:08.452 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
6970:M 10 Jun 2022 11:19:08.452 # Server initialized
6970:M 10 Jun 2022 11:19:08.452 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
6970:M 10 Jun 2022 11:19:08.452 * Ready to accept connections
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

这个窗口就不能再做其他操作了,不推荐

# Redis介绍相关知识

端口6379从何而来

Alessia Merz

默认16个数据库,类似数组下标从0开始,初始默认使用0号库

使用命令 select <dbid> 来切换数据库。如: select 8

统一密码管理,所有库同样密码。

dbsize 查看当前数据库的key的数量

flushdb 清空当前库

flushall 通杀全部库

Redis是单线程+多路IO复用技术

多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)

串行 vs 多线程+锁(memcached) vs 单线程+多路IO复用(Redis)

(与Memcache三点不同: 支持多数据类型,支持持久化,单线程+多路IO复用)

image

#Redis
上次更新: 2024/04/21, 09:42:22
Redis 数据库简介
常用五大数据类型

← Redis 数据库简介 常用五大数据类型→

最近更新
01
微信支付功能的实现与流程
11-21
02
购物车与结算区域的深入优化与功能完善
11-21
03
购物车与结算区域的功能实现与优化
11-21
更多文章>
Theme by Vdoing | Copyright © 2023-2024 EmmmuaCode | 黔ICP备2022009864号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式