登录/注册
唐某
11055
占位
7
占位
31
浏览量
占位
粉丝
占位
关注
Redis简明教程
唐某
2020-06-13 14:33:56 2020-06-13
237
0

一直想写一篇关于Redis的教程,给自己对Redis的学习做个总结。这里写一个简明教程,大概简述下Redis是什么,有什么特性,可以做什么,怎么去运维和监控。


1. Redis是什么

初次接触Redis大概是在18年,那时候只知到Redis是一套缓存系统,可以缓存数据库的查询结果,可以缓存session,可以用来替换memcached。深入学习之后才发现Redis可以做的事情可多了,但是最常见的应用场景估计还是缓存。

1.1 Redis的定义

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。

这是从Redis中文网找到的Redis的定义。这里分开来解析下:

  1. Redis是基于内存的,所以它很快。
  2. Redis有多种数据结构,这就是它和memcached的一个不同,memcached只支持string类型,而Redis还支持哈希、列表、集合、有序集合以及在这个基础上衍生的更多的数据类型。
  3. 因为多样的数据类型,Redis可以用来做数据库、高速缓存甚至是消息队列。

1.2 Redis的特性

  1. Redis是单线程的,虽然是单线程,但是它很快。并且因为它的单线程特性,所以服务端处理模型也非常简单,不用考虑并发的冲突。
  2. 比起memcache,Redis支持多种的数据机构,并且还可以做持久化。持久化的方式有RDB和AOF两种。
  3. Redis还支持主从复制,可以做集群。
  4. 快,非常快。主要是由于基于内存以及单线程的特性,官方给出的读写性能可以达到10万/秒。

1.3 Redis的应用场景

  1. 缓存:和Memcached一样,用来缓存数据库查询的结果。
  2. 排行榜系统:这是由于其有序集合的数据类型。
  3. 社交网络:这是由于集合类型,可以做集合运算。
  4. 消息队列:Redis提供了发布订阅功能和阻塞队列的功能。虽然在功能性上比不上专业的消息队列,但是基本的需求还是可以满足的。

2. Redis的数据结构

Redis支持多种的数据结构,这里做个大概的介绍。

2.1 string(字符串)

字符串是Redis中最基础的数据类型,可以简单认为这是一个键值对。字符串类型的值可以是字符串、数字甚至是二进制,最大不能超过512M。常用的命令包括:

##设置及获取键值
set key value
get key
#删除
del key
##批量设置和获取键值
mset key value
mget key
##自增自减
incr key
decr key

字符串类型的应用常见通常为缓存系统,这就是和memcached一样的地方。此外,Redis还适合做计数器,因为它的自增和自减的性能非常高。

2.2 hash(哈希)

Redis的哈希数据类型与python中的字典基本一致,这是一个键值对的结构,形如value={{field1,value1},...{fieldN,valueN}}。在这里说的value指的是field(字段)的值,而不是key的值,需要和前面的字符串类型做区别。常用的命令包括:

暂无评论