一、什么是redis
redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。
二、优点
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets
数据类型操作。
原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis是提供单线程方式提供服务
Redis支持主从复制功能
三、使用场景
缓存——热数据
分布式锁与单线程机制
队列
排行榜
四、redis相比memcached有哪些优势?
memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
redis的速度比memcached快很多
redis可以持久化其数据
五、mac安装redis
1. 官网下载:https://redis.io/download
2.解压安装,执行命令
tar xzf redis-5.0.3.tar.gz cd redis-5.0.3 make
3.启动服务器
执行命令:src/redis-server
4.启动客户端
执行命令:src/redis-cli
5.保存并获取缓存数据
六、redis支持类型基本操作
string类型
功能说明:字符串数据类型的相关命令用于管理 redis 字符串值
命令描述备注SET key value设置指定 key 的值
GET key获取指定 key 的值。
SETNX key value只有在 key 不存在时设置 key 的值。
STRLEN key返回 key 所储存的字符串值的长度。
2.Redis 哈希(Hash)
功能说明:Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
命令描述备注HMSET key field1 value1 [field2 value2 ]同时将多个 field-value (域-值)对设置到哈希表 key 中。
HMGET key field1 [field2]获取所有给定字段的值
HGETALL key获取在哈希表中指定 key 的所有字段和值
HGET key field获取存储在哈希表中指定字段的值。
3.Redis 列表(List)
功能说明:Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表 的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
命令描述备注LPUSH key value1 [value2]将一个或多个值插入到列表头部
LRANGE key start stop获取列表指定范围内的元素
LLEN key获取列表长度
4.Redis 集合(Set)
功能说明:Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
命令描述备注SADD key member1 [member2]向集合添加一个或多个成员
SCARD key获取集合的成员数
SMEMBERS key返回集合中的所有成员
5.Redis 有序集合(sorted set)
功能说明:Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大 . 的排序。
命令描述备注ZADD key score1 member1 [score2 member2]向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZCARD key获取有序集合的成员数
七、主从模式搭建
1.准备三个redis服务,依次命名文件夹子master,slave1,slave2.
2.配置文件(redis.conf),我们master使用6000端口。
master配置修改端口:
port 6000
requirepass 123456
slave1修改配置:
port 6001
slaveof 127.0.0.1 6000
masterauth 123456
requirepass 123456
slave2修改配置:
port 6002
slaveof 127.0.0.1 6000
masterauth 123456
requirepass 123456
3.启动
启动主机
redis-server redis.conf
启动从机:
redis-server redis1.conf redis-server redis2.conf
4.验证
master:
[root@localhost master]# redis-cli -p 6000
127.0.0.1:6000> auth 123456
OK
127.0.0.1:6000> set test chenqm
OK
slave1:
[root@localhost slave2]# redis-cli -p 6001
127.0.0.1:6001> auth 123456
OK
127.0.0.1:6001> get test
"chenqm"
slave2:
[root@localhost slave2]# redis-cli -p 6002
127.0.0.1:6002> auth 123456
OK
127.0.0.1:6002> get test
欢迎大家关注我们的公众号,一起学习、探讨
网友评论