非关系型数据库Redis

1988 提出了NoSQL (非关系型数据库的补充)

2008/2010 — Big Data(大数据)

NoSQL = No SQL

NoSQL = No Only SQL


关系型数据库(锁) - 数据价值高强一致性

NoSQL产品:

四大类非关系型数据库 :

— Redis - 高速缓存(内存比硬盘快, 内存比硬盘小) - 键值对数据库

— MongoDB - 存放结构不严谨价值不高的数据 - 文档数据库

— Neo4j - 社交网站 - 图数据库

— HBase - 列族数据库

查看是否安装redis

1
cd user/local/bin  -  ll | grep redis  - cd ~  - 配置文件  - ls - cp  - vim -61行 -  :!ifconfig - 内网地址复制 - enter - i进入编辑模式 - 粘贴到61行 - 84行改端口 改成11223(0到2的10次方-1) - 命令模式480行/requirepass 1qaz2wsx - 命令模式 database可以改库数量

启服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
启服务: redis-server myredis.conf & - 杀进程kill 5021 (会显示关机过程, 数据显示已保存) - 查看后台进程jobs - 前台运行 fg %2 - ctrl+c  - redis benchmark  -h 120.77.222.217 -p 11223 -a 1qaz2wsx查看是否成功
ps -ef | grep redis 查进程
redis-cli -h 120.77.222.217 -p 11223 -
- set username admin
- keys*(看到所有键) / keys u*(查看u打头的键) / keys [u,p]*(查看u,p打头的键)
- set foo hello ex 300
- get foo - get bar
- ttl foo(查看存活时间)
- expire username 15(15秒后过期)
- ttl username
- get username
- ttl username
- ttl email
save (保存) / bgsave(后台保存)
select 1(切换到2号库)
set foo bar - get foo - select 0 - get foo
select 15 - flushdb - keys* - select 0 - keys* - flushall(清理底层所有库)
dbsize
info - 查看服务器相关信息
shutdown save - 关闭服务器并保存数据 / shutdown no save - 关闭服务器不保存数据
set - 放键值对
del username - 删除数据
select index - 切换到指定的数据库

开启防火墙时连接

1
2
3
4
5
6
操作步骤 :1.systemctl start firewalld(开启防火墙)
2.firewall-cmd --add-port=11223/tcp --permanent --zone=public(给防火墙开洞)
3.firewall-cmd --reload(重新加载配置)
4.redis-cli -h 120.79.135.242 -p 11223 (客服端连接服务器)
5.auth 1qaz2wsx(输入密码)
6.ping 回复PONG 就成功了(ping是否连接成功)

关闭防火墙时连接

1
2
3
4
5
操作步骤 :1.systemctl stop firewalld
2.redis-benchmark -h 120.79.135.242 -p 11223 -a 1qaz2wsx
3.redis-cli -h 120.79.135.242 -p 11223
4.auth 1qaz2wsx
5.ping 回复PONG 就成功了

五种数据类型

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
key(键) - 键都是字符串 
String(字符串) :
set foo 1
set bar 1.23
set username hello
incr foo (网站投票, 网站页面首页缓存,SQL语句查询结果缓存)
incr foo
incrby foo 50 (网站投票) - redis中操作
incrbyfloat bar 1.23
Strlen - 长度
decr - 减少
append user name - 键后面追加内容与set相似
JSON格式的字符串也可以
-------------------------------------------
Hash(哈希表) : 键值对存放数据 - 字典里面放字典
hset student1 name "Hao Luo"
hset student1 age 38
hset student1 gender Male
hget student1 name
hget student1 gender
hgetall student1
哈希表最适合放对象
-------------------列子------------
hset 10 dno 10
hset 10 dname 财务部
hset 10 dloc 重庆
get 10
hgetall 10
三个字节utf-8
hset 20 dno 20
hset 20 dname 研发部
hset 20 dloc 成都
hgetall 20
field - value 方式存在
hdel 10 dloc - 删哈希表里的字段
del key - 删键
hexists ... - 判断是否有...
hincrby - 增加
------------------------
List(列表) - push
lpush foo 10 20 30 40
lrange - 取指定范围元素
-1 表示全部拿完元素
lrange foo 0 -1 - 倒序
rpush foo 10 20 30 40
lrange foo 0 -1 - 顺序
pop - 拿走元素
nil - 空, 元素没有了
lindex - 查看元素
linsert - 插入元素
lrem - 删除元素
列表应用场景(微博,生产者-消费者模式 - 消息队列)
------------------------------
Set(集合) - 元素不能重复 - 去重
sadd foo 10 10 20 10 20 30
sinter 求交集 foo bar
sunion 并集 foo bar
sddif 差集 foo bar
sremove - 删元素
smembers - 删元素 foo
scard foo
-------------------------
SortedSet(有序集合) :
zadd foo 100 hell 75 good 102 world 300 apple
根据设定的值排序
zrange foo 0 -1
zrevrange foo 0 -1(自动排序) - 游戏排位
zincrby foo 400 hello (加值) - 改变排位的值
zincrange foo 0 -1 可以看到改变后排位的值
type - 查看键的类型

最后更新: 2018年05月26日 16:19

原始链接: http://yoursite.com/2018/05/18/非关系型数据库Redis/

× 请我吃糖~
打赏二维码