redis安装和配置

1
2
3
4
5
yum search all redis|grep redis # 列举相关redis包进行安装
yum install redis hiredis hiredis-devel redis-doc.noarch# 通过man手册查看文档
systemctl start redis
systemctl status redis
ps -ef|grep redis

redis上手

redis首先是一个强大的缓存服务器,比memcache强大很多,不仅仅支持多种数据结构(不像memcache 只能存储字符串)如字符串、list列表、set集合、map映射表等结构,还可以支持数据的持久化存储 (memcache只支持内存存储),经常被应用到高并发的服务器环境设计之中。

数据缓存功能

1
redis-cli
字符串操作
1
2
3
4
5
6
SET key value [EX seconds] [PX milliseconds] [NX|XX]
# NX不存在则创建,XX不存在则返回nil
get key
# 不存在返回nil,get只能用于字符串值
INCR key
# redis本身支持事务处理,多线程对key存储的值自增自减是线程安全的,必须能被解释为数字

列表操作

1
2
3
4
5
6
LPUSH key value [value …]
# 插入表头,类似队列,插入多个值是原子操作
LRANGE key start stop
# 闭区间
BRPOP key [key …] timeout
# 阻塞弹出原语

redis发布-订阅

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PUBLISH channel message
SUBSCRIBE channel [channel …]

127.0.0.1:6379> PUBLISH "zhangsan" 1
(integer) 1

127.0.0.1:6379> SUBSCRIBE "zhangsan"
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "zhangsan"
3) (integer) 1
1) "message"
2) "zhangsan"
3) "1"

订阅状态下只能使用subscribe、unsubscribe、 psubscribe和punsubscribe这四个属于”发布/订阅”的命令,进入订阅状态后每中回复都包含三个值

  1. subscribe:表示订阅成功的反馈信息。第二个值是订阅成功的频道名称,第三个是当前客户端订阅 的频道数量。
  2. message:表示接收到的消息,第二个值表示产生消息的频道名称,第三个值是消息的内容。
  3. unsubscribe:表示成功取消订阅某个频道。第二个值是对应的频道名称,第三个值是当前客户端订 阅的频道数量,当此值为0时客户端会退出订阅状态,之后就可以执行其他非”发布/订阅”模式的命 令了。

Q:redis是什么? Redis架构是怎么样的?怎么设计redis?

A:高性能,支持多种数据类型和缓存淘汰策略,并提供一定持久化能力的远程缓存服务

RDB是什么,AOF是什么?RDB和AOF的区别是什么?

Redis有什么作用?

Redis为什么要单线程?

Redis redis的持久化机制是怎么样的?

Redis支持String,List,Set,Zset

Redis支持哪些数据类型?

Redis是单线程吗?

Redis缓存过期策略 Redis缓存淘汰策略 缓存过期策略和缓存淘汰策略的区别是什么?

LRU是什么?

Redis-cli是什么?

Redis通信协议是怎么样的?

Redis的协议格式是怎么样的?

为什么Redis不用HTTP?

RedisJson是什么?

RediSearch是什么?

RediTImeSeries是什么?

RedisGraph是什么?

Redis的高可用,高性能怎么做?