C++学习之redis

1.知识点概述

  1. 数据库类型

1.1 基本概念

  1. 关系型数据库 - sql
  • 操作数据看需要使用sql语句

  • 数据是存储到磁盘的

  • mysql

  • sqlite

  • oracle

  • sqlserver

  1. 非关系数据库 - 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介绍

相关推荐
不像程序员的程序媛10 小时前
系统cpu内存负载资源分析
运维·服务器·数据库
Jane Chiu11 小时前
Oracle DBMS_REDEFINITION(在线重定义)
数据库·oracle·分区表
全栈前端老曹11 小时前
【MongoDB】安全与权限管理 —— 用户认证、角色权限、SSL 加密
前端·javascript·数据库·安全·mongodb·nosql·ssl
怕孤单的草丛12 小时前
缓存管理面临的主要问题
java·数据库·缓存
我会尽全力 乐观而坚强12 小时前
MySQL零基础入门(二)
数据库·mysql·adb
kali-Myon13 小时前
某校园门禁系统高危 SQL 注入漏洞挖掘复盘
数据库·sql·安全·web安全
程序员在囧途15 小时前
likeadmin-api API 中转站怎么做统一报价?从 /pricing、/user/balance 到 task_id 回执的落地方法
运维·服务器·数据库·likeadmin-api·api中转站·token计费
龙石数据15 小时前
MySQL 全量同步到 Hive 怎么做?三步配置教程
数据库·hive·mysql·数据治理·数据中台
程序员在囧途16 小时前
likeadmin-api API 算力超市怎么做供应商切换?统一鉴权、task_id 和 callback_url 才能稳交付
java·服务器·数据库·开放api·likeadmin-api·api算力超市