什么是Redis?分布式缓存Redis服务安装与命令解析

今天为大家分享一个系列的教程Redis高级应用实战分布式缓存,今天文章内容概要:1、那么分布式缓存为什么要用Redis,什么是redis,2、为什么要用缓存机制,3、而Redis作为单线程模型为什么效率还这么高?4、Redis服务安装及常用命令解析

1. 什么是Redis

NoSQL

分布式缓存中间件

key-value存储

提供海量的数据存储访问

所有数据放在内存中,读取速度非常快

非关系型,分布式、开源,支持水平扩展

2. 为什么使用内存缓存数据库

因为在我们的基础架构,我们的数据库一般都是第一节点(主从、MMM、MHA)

一遍导致数据库缓慢或宕机的都是查询导致的,update、delete,80%的SQL都是查询,如果能够将这80%SQL抽离到缓存中;

Redis VS Memcache VS Ehcache

Ehcache

不支持集群,单点

不支持分布式,存储容量不支持扩展

基于Java开发的,被apache认证

基于JVM缓存的

简单、轻巧、方便(广泛的应用于hibernate,Mybatis)

优点

缺点

Memcache

无法容灾

无法持久化

简单的key-value存储

内存使用率比较高

支持多核多线程

优点

缺点

Redis

单线程(不建议进行大数据量的存储)

单核(无法充分利用CPU多核性能,建议使用多实例)

丰富的数据结构

持久化:RDB、AOF

主从同步、故障转移(MySQL;主从)

内存数据库

优点

缺点

3、Redis作为单线程模型为什么效率还这么高?

1、纯内存访问:数据存放在内存中,内存的响应时间是100纳秒

2、非阻塞式的I/O操作:Redis采用epoll作为I/O多路复用技术的实现

3、采用单线程避免了不必要的上下文切换和竞争条件

什么是多路复用

如果你是一个老师,有30个学生做一道题,做完需要检查

1、按顺序检查,A,B,C

2、你创建30个分身,来检查30个结果

3、谁做完了谁举手,A,B、C,D

4. Redis服务安装及常用命令解析

# redis下载解压后yum -y install gcc-c++make && make install

# cd /usr/local/bin 将redis相关的命令安装进来# 进入redis根目录对redis.conf进行修改daemonize yes

#后台执行dir /usr/local/redis-6379

#工作目录bind 0.0.0.0 #ip访问控制,这里是放开的意思requirepass icoding

#设置redis密码port 6379pidfile /var/run/redis_6379.pid

#进程id存放文件maxcliens 0 #客户端的最大连接数,默认0就是不限制timeout 0

#客户端连接的超时时长,默认0就是关闭不限制#启动Redisredis-server redis.conf

5.Redis五大数据类型

string

keys *#查看redis当前数据库所有的key-value,生成上不要用

keys abc*

set / setnx : 后者如果有数据就不生效,前者有数据就覆盖

expire username

# redis默认配置有16个DB数据库,可以增减

flushdb #删除当前DB中所有数据

flushall#删除所有DB中的数据

# 如果要关闭这两个命令的

rename-command FLUSHDB ""# rename-command FLUSHDB "icoding

floushdb"rename-command FLUSHALL ""

hash:对象

# 比如一个对象,这个一般在购物车中使用比较多

user { 

name: icoding 

age: 18 

sex: male

}

hset user name icoding age 18 sex male

type user

hget user

namehgetall user 

list:栈

# 做管道通知

lpush userList 1 2 3 4 5

lpop user

Listrpop

userList

set:集合

sadd userSet 1 2 3 4 5 6 5 4 3 2 1

smembers userSet

srandmember userSet 2#随机展示两个

spop userSet 2#随机取两个 可以做抽奖

zset:带有一个数据标签的集合

zadd za1 10.99 apple 20.11 peach 40.89 banana 30.80 pear 50.79 cherry

zrange za1 0 -1 withscores

GEO

geoadd china:city 116.408 39.904

beijing 121.445 31.213

shanghai 113.265 23.108

guangzhou 114.109 22.544

shenzhen 108.969 34.285

xian 108.55 34.09

changan

如果需要本期图文教程的视频教程,请关注“艾编程”公众号,回复关键词“Redis”或者“分布式缓存”,看本期课程的视频+图文教程,还能收获更多哦!

你可能感兴趣的:(什么是Redis?分布式缓存Redis服务安装与命令解析)