likes
comments
collection
share

Redis 数据库 介绍、安装、常用命令

作者站长头像
站长
· 阅读数 18

一、概念

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 * :查看所有的keyhelp@___ :获取Redis数据库中某个类型的帮助文档help _ :获取某个类中,某个命令的帮助文档

在String类型中,有以下几个常用命令:1、set:添加或修改String类型的键值对2、get:根据key获取String类型的value3、mset:批量添加多个String类型的键值对4、mget:批量获取多个String类型的value5、INCR:让一个整型的key自增16、INCRBY:让一个整型的key增加指定步长7、INCRBYFLOAT:让一个Float类型的key增加指定步长8、SETEX:设置键值对的生命周期,秒为单位9、SETNX:添加不存在的String类型的键值对,存在则不添加