1.Redis简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
- Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。
它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,
同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区
- 学习网址:https://www.w3cschool.cn/redis/
- www.redis.cn
- www.redis.net.cn
- Redis用途:1. 数据库 2. 缓存
2.Redis的优势
-
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
-
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
-
原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是 原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
-
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
3.Redis服务器的安装
第一步:安装gcc
- yum install gcc-c++(gcc编译c的,因为redis是c编写的,所以我们先安装下gcc)
第二步:wget方式 下载redis压缩包
yum -y install wget
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
解压
Tar -xvf redis-5.0.2.tar.gz
进入目录
cd redis-5.0.2/
编译
Make
redis-5.0.2/redis.conf
开启守护进程,不开启的话,不能做其他操作
#daemonize no
daemonize yes
不能操作如下
./src/redis-server
-
可是这个redis默认就只有一个主线程,守护线程是默认关闭的
所以我们要改变redis.conf这个文件
#daemonize no 为 daemonize yes -
这里是直接使用SecureFX连接工具直接修改的
-里面需要修改的东西一共有三个
-
将 daemonize no 修改为daemonize yes
-
将bind 127.0.0.1 注销
-
#找到下面这一行并去除注释,并添加密码(396行)
#requirepass foobared #修改前
requirepass 123456 #修改后
对了,差一点就忘记了,做了这些修改后你还是连接不上的,为什么呢?原因很简单就是我们在Linux里面没有访问权限,我们需要从新设置一下防火墙
firewall-cmd --zone=public --add-port=6379/tcp --permanent
跟新防火墙规则
firewall-cmd --reload
防火墙列表
firewall-cmd --zone=public --list-ports
防火墙状态
systemctl status firewalld
启动防火墙
systemctl start firewalld
做完这些我们需要从新启动我们的Linux
可视话工具
下载地址:https://pan.baidu.com/s/1fEFyBXbYs5JRIXvGTb0Oiw
提取码:855i
我们就可以直接使用连接上了
Redis基本操作
2. Redis支持五种数据类型
string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
3. 通过命令操作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是否存在