简介
介绍Redis之前,先了解下NoSQL (Not noly SQL)不仅仅是SQL
属于非关系型数据库;Redis就属于非关系型数据库
传统的Mysql ,oracle ,sql server 等 都是关系型数据库
为什么需要NoSQL,主要应对以下问题,传统关系型数据库力不从心
High performance -高并发读写
Huge Storage-海量数据的高效率存储和访问
High Scalablility && High Availability 高可扩展性和高可用性
NoSQL 产品 MongoDB Redis等等 Redis目前主流
Redis的应用场景
缓存
任务队列
网站访问统计
数据过期处理
应用排行榜
分布式集群架构中的session分离
安装
Redis官方网址: https://redis.io/
首先安装服务端 Redis从一开始就只支持Linux,后面虽然有团队搞出Window版本,个人建议安装到Linux中。
安装gcc
gcc编译c语言的,因为redis是c语言编写的,所以我们先安装下gcc
将准备好的离线压缩包放到目录下,直接用命令解压,大家也可以采用在线安装
①yum install gcc-c++ 中间出现询问是否继续点击y就好了
之后再依次执行命令
②:Tar -xvf redis-5.0.2.tar.gz(解压)
③:cd redis-5.0.2/(进入目录)
④:make(编译)
编译好后看到这个图的时候说明已经启动成功,如果没有出现这个
可以试下这个,但这个是不能进行操作的所以要开启守护进程,不开启的话,不能做其他操作
./src/redis-server
在此之前了解一下这种启动是前端或者前台启动,假如退出 程序就终止或者退出了。
所以这种服务程序,必须后端运行;
我们通过修改配置文件redis.conf
我们可以先copy 一份redis.conf 以防备份
可以创建一个myredis目录来保存 redis.conf 备份
命令如下:
//复制redis.conf文件
cp redis.conf redis_bak.conf
//复制redis.conf文件到根目录下
cp redis.conf ../redis_1.conf
下一步输入
vi redis.conf
将#daemonize no 改成 daemonize yes (按住n进行查找
./src/redis-server redis.conf
服务端就安装成功啦!、
安装客户端安装
可视化管理工具redis-desktop-manager安装与配置
双击redis-desktop-manager-0.8.8.384.exe即可
开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
跟新防火墙规则
firewall-cmd --reload
防火墙列表
firewall-cmd --zone=public --list-ports
然后再回到VM虚拟机上执行,进入我们之前解压好的redis目录下
vi redis.conf
配置远程登录
输入/bind 按n 找到
#bind 127.0.0.1 #注释这一行
再执行 /requirepass
#requirepass foobared #修改前
requirepass 123456 #修改后
按ESC键 打上:wq退出
重启服务:reboot
最后用修改后的密码执行登录
依次输入箭头里的
cd/文件名/redis-5.0.2
./src/redis-server redis.conf
./src/redis-cli
./src/redis-cli -h -127.0.0.1 -p 6379 -a 123456
最后测试一下是否连接成功
连接成功了
Redis操作语法
有了可视化工具,就可以大可用工具创建值。
但是如果想用命令操作也是可以的
Redis支持五种数据类型
string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
通过命令操作redis(命令不区分大小写)
redis默认的数据库有16,mongodb是3个:admin/local/test
redis-cli #打开redis终端
select index #选择指定的数据库,默认的数据库有16,mongodb是3个:admin/local/test
#字符串
set name #保存
get name #获得
type name #查看类型
keys *
del name
#哈希(Hash),Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
hset key attr1 value1 attr2 value2
hget key attr1
hgetall key
#列表(List)
lpush key value1 value2 value3
llen key
lindex key index
lrange key start stop #stop可以为-1,到末尾的意思
#Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
sadd key value #sadd idcard 100
sadd key value1 value2 vlaue3
scard key
sscan key cursor [MATCH pattern] [COUNT count]
exists key #检查key是否存在