Redis缓存的介绍

2018-12-24 19:03:42     

简介

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。换句话说,Redis就像是一个HashMap,不过不是在JVM中运行,而是以一个独立进程的形式运行。一般说来,会被当作缓存使用。 因为它比数据库(mysql)快,所以常用的数据,可以考虑放在这里,这样就提高了性能。

我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读取,使得请求能够迅速响应。

大并发的情况下所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问数据库。

下载安装

Redis项目不正式支持Windows。 但是,Microsoft开放技术小组开发和维护这个Windows端口针对Win64。Microsoft下载Redis的Github地址 https://github.com/MSOpenTech/redis/releases

下载并解压后,先打开redis服务端redis-server.exe

再打开redis客户端redis-cli.exe 就可以开始操作redis了

常用命令

Redis目前有5种数据类型,分别是:String(字符串) List(列表) Hash(字典) Set(集合) Sorted Set(有序集合)

String常用命令

set name www.bounds(设置name字符串)
append name .top(这个类似StringBuffer的append的功能)
get name

set num 0(设置num字符串)
incr num(让num自增1)
incrby num 100(让num自增100)
get num

rename name username(重命名name字符串为username)
get username

List常用命令

lpush listTeacher Bounds
lpush listTeacher Cubi
rpush listTeacher Peter(设置listTeacher列表为Bounds、Cubi、Peter)
llen listTeacher(长度为3)
lrange listTeacher 0 3(遍历出listTeacher,顺序为最先插入的排最后,最后插入的排第一)
lpop listTeacher(得到排在第一位的Peter)
rpop listTeacher(得到排在最后一位的Bounds)

Set常用命令

sadd setTeacher Bounds
sadd setTeacher Cubi
sadd setTeacher Peter(设置setTeacher集合为Bounds、Cubi、Peter)
smembers setTeacher(遍历出listTeacher,无序)
sadd setTeacher Louis(增加Louis)
sismember myset louis(长度为1)

Hash常用命令

hset hashTeacher name Bounds
hset hashTeacher age 21(设置hashTeacher字典为name:Bounds,age:21)
hgetall hashTeacher(获取hashTeacher字典的所有key,value值)
hkeys hashTeacher(获取hashTeacher字典的所有key值)
hvals hashTeacher(获取hashTeacher字典的所有value值)

Sorted Set常用命令

zadd sortedTeacher 5 Bounds
zadd sortedTeacher 3 Cubi
zadd sortedTeacher 4 Peter
zadd sortedTeacher 3 Louis(设置sortedTeacher有序集合)
zcard sortedTeacher(长度为4)
zcount sortedTeacher 3 4(长度为3)
zrangebyscore sortedTeacher 3 5(打印结果为有序:Cubi,Louis,Peter,Bounds)
更多命令详见redis官方手册:http://www.redis.cn/commands.html

redis客户端还提供了可视化的图形界面提供下载地址:https://pan.baidu.com/s/16KoyL8d6zSFaOKH_0N9hwA

RESTful API 最佳实践

RESTful 的核心思想就是,客户端发出的数据操作指令都是"动词 + 宾语"的结构。比如,GET /articles这个命令,GET是动词,/articles是宾语。 动词通常就是五种 HTTP 方法,对应 CRUD 操作。 GET:读取(Read)POST:新建(Create)PUT:更新(Update)PATCH:更新(Update),通常是部分更新DELETE:删除(Delete) 根据 HTTP 规范,动词一律大写。有些客户端只能使用GET和POST这两种方法。服务器必须接受POST模拟其他三个方法(PUT、PATCH、DELETE)

Redis集成SSM框架

jedis是redis的java客户端,spring将redis连接池作为一个bean配置。redis连接池分为两种,一种是“redis.clients.jedis.ShardedJedisPool”,这是基于hash算法的一种分布式集群redis客户端连接池。另一种是“redis.clients.jedis.JedisPool”,这是单机环境适用的redis连接池。 Redis集成SSM框架实际上就是spring集成redis,这篇博客是基于《个人档案系统》 的改进版。jar包通过maven管理,加入单机版的redis

 发表评论