一、概念
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 开机自启 ,一般默认情况下就是yes
bind 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类型的键值对,存在则不添加
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net