NoSQL不仅仅是No SQL,还是Not only SQL,SQL代表传统关系数据库,NoSQL显然是针对传统关系数据库的补充和升级。
NoSQL分类:
(1)Key-value stores键值存储, 保存keys+BLOBs (二进制大对象Binary Large OBjects)
(2)Table-oriented 面向表列, 主要有Google的BigTable和Cassandra.
(3)Document-oriented面向文档, 文本是一种类似XML文档,MongoDB 和 CouchDB
(4)Graph-oriented 面向图论. 如Neo4J
参考https://www.cnblogs.com/lukelook/p/11135209.html
中文官网:http://www.redis.cn/
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
1)本教程使用3.2版本,下载Redis-x64-3.2.100.zip,解压到D盘。
2)点击redis-server.exe运行redis服务器,如果出现闪关情况,是没有读取到redis.windows.conf配置文件,解决方案如下:
在D:\DevSoftware\Redis-x64-3.2.100目录下打开cmd界面,执行redis-server.exe redis.windows.conf(中间空格),回车
出现如上图所示的图案就表示服务启动成功了,启动后不能关闭服务窗口
3)点击redis-cli.exe运行客户端
set命令设置key和value,get命令通过key获取value值
1)使用Xftp将redis-3.2.9.tar.gz上传到Linux的home下的Soft
2)进入到Soft目录执行
tar -zxvf redis-3.2.9.tar.gz -C /usr/local/
3)cd到/usr/local/,可以看到redis解压后的目录
4)cd到redis-3.2.9
5)cd到src目录,编译Redis,需要使用到gcc编译器
6)cd到src上级目录,执行make命令
可以执行make install,这个命令是让redis可以在任意位置执行。
我们选择在src文件下执行,绿色的代表可以执行
8)执行 ./redis-server(前台启动,不能再执行其他命令)
9)后台启动,命令:./redis-server & 执行成功后回车,程序界面退出
或者修改redis.conf文件daemonize yes就不需要&
10)通过ps命令查看redis: ps -ef | grep redis
11)执行 ./redis-cli命令 启动客户端
下载安装桌面客户端
使用客户端
打开客户端,访问不了虚拟机上的Redis服务,修改Redis的网络安全策略,并关闭Linux防火墙(命令:systemctl stop firewalld)才能访问。同时修改redis.conf配置文件。
1)命令:vi redis.conf,编辑配置文件
2)输入: /bind 查找bind 按n键自上而下查找
找到并注释,按i键进入编辑,同时将protected-mode yes 保护模式改为no。
3)保存退出:ESC后,shit+:后,wq保存。
注:redis.conf文件生效的话,每次启动时必须加上所处位置的redis.conf
./redis-server ../redis.conf &
尽量不要使用keys *
可以用来解决验证码
可以存储大文本
存放对象信息,用户信息session问题
1)基本命令
incr操作时原子性的,可以做全局的计数器
decr也是原子操作
2)常用命令
1)基本命令
2)常用命令
1)基本命令
2)常用命令
1)基本用法
2)常用命令
count正数,结果不重复
count负数,结果有可能重复
1)基本命令
MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证:
EXEC 命令负责触发并执行事务中的所有命令:
8.1.1 事务操作的命令
8.1.2 事务的实现
redis没有回滚的功能
8.2.1 持久化概述
8.2.2 持久化方式
aof是文本文件,可以用vi修改。如果redis启动读取aof有问题时,可以修改aof文件删除错误的命令。
8.3.1 主从复制
拷贝:cp redis.conf redis6388.conf
清空redis6388.conf内容:> redis6388.conf
启动服务
info replication查看服务信息
从服务器是不能写操作,lpop取操作也是不允许的。
在6389执行slaveof no one
6389已经成为主服务器,但是6390不清楚,6390执行 slaveof ip port 命令
当6388重新启动时,需要将其挂载到新的master上,执行 slaveof ip port 命令,
这样就只有一个主服务器。
8.3.2 高可用Sentinel哨兵
哨兵系统必须是奇数个,至少3个,因为它采用少数服从多数的机制,如上图,3个哨兵系统同时监控Master,心跳模式,当发现Master宕机了,哨兵开始投票,第一个投1票,第二个投1票,根据少数服从多数,第三个就没必要投票,哨兵将Slave中选择一个设置为Master。
哨兵的配置文件
哨兵的运行命令
36380示例,其他2个就不截图了
关闭redis Master服务器,sentinel自动将slave升级为Master(需要等待几秒)
打开requirepass 后面设置密码
设置密码后,客户端访问需要输入密码:./redis-cli -a ***
或者用auth ***