当前位置: 首页 > news >正文

C++学习之redis

1.知识点概述

 1. 数据库类型

### 1.1 基本概念

1. 关系型数据库 - sql
   - 操作数据看需要使用sql语句
   - 数据是存储到磁盘的
     - mysql
     - sqlite
     - oracle
     - sqlserver
2. 非关系数据库 - nosql
   - 不使用sql语句
   - 没有数据库表, 以键值对的方式存储的
   - 数据默认存储到内存

2.知识点复习

3.通过进程的方式实现文件上传思路

4.通过进程的方式实现文件上传代码

5.fastDFS API实现文件上传代码

6.程序测试

7.关系型和非关系型数据库

8.redis安装和启动测试命令

安装包下载
英文官方: https://redis.io/
中文官方: http://redis.cn/
2. Redis 安装
make
sudo make install
3. redis 中的两个角色
服务器
客户端
4. 环境测试
5. redis 中数据的组织格式
通过 key - value 的方式存储数据
key -> 必须是字符串
value ->
String 类型
# 启动服务器
redis-server
redis-server 配置文件
# 启动客户端
redis-cli - 使用默认端口连接
redis-cli -p - 使用指定端口连接服务器
redis-cli -h host -p port
- host - > redis 服务器的 ip 地址
- port - > redis 服务器监听的端口
# 测试命令
ping
- PONG
ping msg
- msg
# 在客户端通过命令关闭服务器
shutdown
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 List 类型
Set 类型
SortedSet 类型
Hash 类型
6. redis 中常用数据类型
String 类型
字符串 - "hello"
List 类型
存储多个字符串
Set 类型
集合
stl 中的集合 :
自动排序
存储的元素不能重复
redis 中的集合
存储的数据不排序
存储的元素不能重复
SortedSet 类型
每个元素分为两部分 : [ 分数 成员 ]
Hash 类型
哈希数据结构特点 : 查找速度快 , 键值对
<key, value>
map, hash
2.2 redis 常用命令
String 类型
# 创建新键值对
SETNX key value
- key , 如果存在 , 什么也不干
- key, 如果不存在 , 创建一个键值对
# 设置数据
SET key value [EX seconds] [PX milliseconds] [NX|XX]
- key: 用户指定的 key
- 如果 key 存在 , 覆盖原来的 value
- 如果不存储 , 创建一个 key, 对应值为 value
- value: key 对应的字符串
# 设置 N 个键值对
MSET key value [key value ...]
# 获取数据
GET key
# 返回所有 ( 一个或多个 ) 给定 key 的值。
MGET key [key ...]
# value 追加内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 List 类型 - 存储多个字符串
Set 类型
APPEND key value
# key 中储存的数字值减一
DECR key
- key 对应的 value 的要求 : 必须是数字类型的字符串
# value 值加 1
INCR key
# value 减去 指定的 值
DECRBY key decrement
# value 加上 指定的 值
INCRBY key increment
# value 的长度
STRLEN key
# 如何存储
LPUSH key value [value ...] - > 新添加的字符串放到头部
RPUSH key value [value ...] - > 新添加的字符串放到尾部
# 删除元素
LPOP key - > 删除最左侧字符串
RPOP key - > 删除最后一个字符串
# 遍历
LRANGE key start stop
- start : 0 代表第一个元素
- stop : -1 代表最后一个元素
# 列表中字符串个数
LLEN key
# 根据位置 index 取出 列表中的 string
LINDEX key index
# 插入字符串
LINSERT key BEFORE|AFTER pivot value
# 删除指定字符串
LREM key count value
- count > 0 : 从前往后搜索 , 删除 value, 最大个数为 count
- count < 0 : 从后往前搜索 , 删除 value, 最大个数为 count
- count = 0 : 删除所有值为 value 的元素
# 添加数据
SADD key member [member ...]
# 遍历 set
SMEMBERS key
# 集合求差集
SDIFF key key1 [...]
- key - key1
# 集合的交集
SINTER key [key ...]
# 集合的并集
SUNION key [key ...]
# 删除
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1
2
3
4
5
6
7
8
9
10
11
12 SortedSet 类型
Hash 类型
Key 相关的命令
SREM key member [member ...] - 删除指定元素
SPOP key - 随机删除一个元素

9.redis中的数据类型

10.字符串相关的操作命令

11.list操作相关的命令

12.set集合相关的命令

13.排序集合常用命令

14.哈希类型常用的命令

15.key常用的操作命令

16.redis的配置文件

17.服务器配置文件修改后测试

18.redis持久化两种方式

19.rdb和aof持久化方式设置

20.数据持久化方式选择

21.hiredis介绍

相关文章:

  • (C语言)指针与指针数组的使用教学(C语言基础教学)(指针教学)
  • 【算法百题】专题七_分治快排_专题八_分治归并
  • (hash表+vector 数位和相等数对的最大和)leetcode 2342
  • 遥感数据处理
  • 七、面向对象高级_设计模式
  • Visual Studio里的“公共语言运行时支持”各选项的作用是什么,分别适用于哪些场景?
  • 宇树与智元的崛起:机器人“灵魂”注入的技术密码
  • Mock接口编写教程-axios-mock-adapter(React)
  • 神聖的綫性代數速成例題6. 方陣行列式的性質、伴隨矩陣
  • Python驱动CATIA自动化建模:科赫雪花算法实现与工程应用
  • AI数字人短视频数字人口播源码核心技术解析与商业应用
  • 使用usb-cam包时填充摄像头参数话题
  • 第27周JavaSpringboot git初识
  • 【商城实战(30)】从0到1搭建商城数据分析功能,开启数据驱动增长引擎
  • 数据可视化在特征分布对比中的应用
  • 【AI-Coding】聊聊AI--软件架构探索体验
  • Mysql - 日志相关问题
  • 【工具类】PDF文件转图片
  • 计算机网络 第一章:计算机网络和因特网(1)
  • CMake学习笔记(三):静态库,动态库的生成和使用
  • 挑大梁!一季度北上广等7省份进出口占外贸总值四分之三
  • 苹果第二财季营收增长5%,受关税政策影响预计下一财季新增9亿美元成本
  • 微博:严厉打击对肖某董某事件蹭炒热点、编造故事博流量等行为
  • 超越梅罗,这样一个亚马尔折射巴萨的容错率
  • 解放日报:抢占科技制高点,赋能新质生产力
  • 湖北鄂州通报4所小学学生呕吐腹泻:供餐企业负责人被采取强制措施