一、概念
Redis是一种无关联的、非SQL的、BASE的、以内存为存储形式的、程度扩大的非关系型数据库。而MySQL的数据库是一种关联的、SQL查问的、ACID的、以磁盘存储的、垂直扩大的关系型数据库。
非SQL:各种非关系型数据库没有固定的语法。
无关联的:与关系型数据库不同,关系型数据库表会主动的保护表中的逻辑关系,而Redis不会主动保护,然而能够通过内部逻辑解决来保护表之间的逻辑关系。
BASE:Available(根本可用)、Soft state(软状态)和Eventually consistent(最终一致性)。
1、根本可用:产生不可预知的故障时,容许损失局部可用性(工夫、性能)。
2、软状态:容许零碎中的数据存在中间状态,且不会影响零碎的整体可用,容许在不同节点的数据正本之间在数据同步的过程中存在提早。
3、最终一致性:所有的数据正本,通过一段时间的同步后,最终达到一个统一的状态,不须要实时保障。
内存的存储形式:能够更快的读取数据,但一经断电,内存中的数据会失落,但为了避免这种状况,每隔一段时间,内存中的数据就会写入到磁盘中进行保留。
程度扩大:Redis从设计之初就思考到了分布式数据的状况,通过惟一标识,来进行Hash运算,依据Hash运算的后果来确认数据寄存在那个节点,与关系型数据库不同,关系型数据库中的数据只对本机负责。
Redis数据库的value有5个根本类型和3个非凡类型
根本类型:String、Hash、List、Set、SortedSet
非凡类型:GEO、BitMap、HyperLog
二、特色
1、键值型(key-value)型,value反对多种数据结构,功能丰富
2、单线程,每个命令具备原子型。
3、低提早,速度快(基于内存、IO多路复用、良好的编码,其中基于内存是使Redis低提早速度快的次要因素)。
4、反对主从集群、分片集群(将数据拆分、程度扩大)
5、反对多种语言客户端
三、装置
Redis数据库是在Linux上开源的,在Windows操作系统中的Redis数据库并不是官网公布的,而是微软编译的,所以咱们间接在Linux服务器上部署Redis数据库。
1、应用ssh命令连贯上近程服务器
ssh 你的用户名@近程服务器的IP地址
2、进入Linux服务器后(演示的发行版是Ubuntu),执行sudo apt-get install redis-server
命令下载Redis,能够应用service redis status
命令来查看Redis的状态。
装置结束之后,要进入Redis的配置文件中,批改配置文件。将配置改成开机自启、禁用默认IP、禁用保护模式、增加明码,以不便日后应用(批改前记得备份一下)。
daemonize yes 开机自启 ,个别默认状况下就是yesbind 127.0.0.1 -::1 应用#正文掉protect-mode yes 这里批改成no 禁用保护模式requirepass "" 在""中设置本人的明码
应用命令sudo vim /etc/redis/redis.conf
进入Redis配置文件,在浏览模式(默认是浏览模式,摁i进入编辑模式,摁ESC退出编辑模式)中应用命令/word
来搜寻要批改的配置(word的地位填要搜寻的单词,比方/daemonize)。
批改实现后重启Redissystemctl restar redis
四、登录Redis数据库
执行命令redis-cli -h 近程服务端的IP -p 6379
其中-p 前面跟着的是默认端口号。
而后执行auth
命令,输出刚刚设置的明码就胜利进入Redis数据库中了。
五、常用命令
keys * :查看所有的key
help@___ :获取Redis数据库中某个类型的帮忙文档
help _ :获取某个类中,某个命令的帮忙文档
在String类型中,有以下几个常用命令:
1、set:增加或批改String类型的键值对
2、get:依据key获取String类型的value
3、mset:批量增加多个String类型的键值对
4、mget:批量获取多个String类型的value
5、INCR:让一个整型的key自增1
6、INCRBY:让一个整型的key减少指定步长
7、INCRBYFLOAT:让一个Float类型的key减少指定步长
8、SETEX:设置键值对的生命周期,秒为单位
9、SETNX:增加不存在的String类型的键值对,存在则不增加