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
-
随机删除一个元素
