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介绍

相关推荐
昵称是6硬币3 小时前
MongoDB系列教程-教程概述
数据库·mongodb
极限实验室6 小时前
IK 字段级别词典的升级之路
数据库
曾几何时`7 小时前
MySQL(配置)——MariaDB使用
数据库·mysql
努力学习java的哈吉米大王7 小时前
MySQL——MVCC
数据库·mysql
数据要素X7 小时前
【数据架构10】数字政府架构篇
大数据·运维·数据库·人工智能·架构
lixzest8 小时前
Redis实现数据传输简介
数据库·redis·缓存
搬砖的小熊猫8 小时前
MySQL常见面试题
数据库·mysql
lang201509288 小时前
如何使用 Apache Ignite 作为 Spring 框架的缓存(Spring Cache)后端
spring·缓存·apache·ignite
Linux技术支持工程师8 小时前
二十八、【Linux系统域名解析】DNS安装、子域授权、缓存DNS、分离解析、多域名解析
linux·运维·服务器·缓存·centos
weixin_419658318 小时前
MySQL的JDBC编程
数据库·mysql