入门redis教程
前言:
应公司需求,最近学习了一下redis数据库的一些简单入门的教程,整理出来分享给大家,喜欢的可以关注和点赞哦~
如文章中有不足之处求指正,谢谢
目录
·什么是redis?为什么用使用它?
·redis和mysql的区别?
·适用的场景
·redis的安装以及使用?
·常用的redis命令
·redis对键的操作
一,什么是redis ?为什么要用它?
简单介绍:
Redis是开源的key-value缓存框架,由c语言编写,也是一款高性能的框架提供多种语言的API 。
SET 每秒11万次 取get每秒81000次。
数据完全存储在内存空间中,支持数据持久性,支持master-slave模式的数据备份。
Value可以是字符串,(hash)Map,(List)列表,(SET)集合,
(sorted set)有序集合
二,redis和mysql的区别?
我们都知道mysql是持久数据化存储,存储在磁盘当中的,会涉及到一些io,存储速度会较慢,这时候就出现了redis数据库,redis存储数据在内存当中,大幅度的提高了大数量的web访问速度。
Redis+Mysql 它就是一个内存+磁盘关系的一个映射,redis存储在内存中mysql存储在磁盘中,这样的话web每次访问redis如果没有数据就再去mysql读取数据,大大的提高了运行速度。
Redis:
内存数据库,数据存储在内存当中,速度快。
Mysql:
关系型数据库,功能强大,存储在磁盘,访问效率低。
三,适用场景
1,取最新n个数据的操作
2,排行榜,取topn个数据(最佳人气前10条)
3,精确的设置过期时间
4,记数据
5,实时系统,反垃圾系统。
6,Pub,sun构建实时消息系统。
7,构建消息队列
8,缓存
ehcache 和 redis 比较
- ehcache直接在jvm虚拟机中缓存,
速度快
,效率高;但是缓存共享麻烦
,集群分布式应用不方便。 - redis是通过socket访问到缓存服务,效率比ecache低,比数据库要快很多,
处理集群和分布式缓存方便,有成熟的方案。如果是单个应用
或者对缓存访问要求很高
的应用,用ehcache。如果是大型系统,存在缓存共享、分布式部署、缓存内容很大
的,建议用redis。
介绍
EhCache 是一个
纯Java
的进程内缓存框架
,具有快速、精干等特点,是Hibernate中默认CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存
和磁盘
存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。特性
- 快速、简单
- 多种
缓存策略
- 缓存数据有两级:
内存和磁盘
,因此无需担心容量问题
- 缓存数据会在虚拟机
重启
的过程中写入磁盘
- 可以通过
RMI
、可插入API等方式进行分布式缓存
- 具有缓存和缓存管理器的侦听接口
- 支持
多
缓存管理器实例
,以及一个实例的多个缓存区域
- 提供
Hibernate
的缓存实现集成
可以单独使用,一般在第三方库中被用到的比较多(如mybatis、shiro等)ehcache 对
分布式支持不够好
,多个节点不能同步
,通常和redis一块使用灵活性
ehcache具备对象
api接口
和可序列化api接口
不能序列化的对象
可以使用出磁盘存储外ehcache
的所有功能
支持基于Cache和基于Element的过期策略,每个Cache的存活时间都是可以设置和控制的。
提供了LRU、LFU和FIFO缓存淘汰算法,Ehcache 1.2引入了最少使用和先进先出缓存淘汰算法,构成了完整的缓存淘汰算法。
提供内存和磁盘存储,Ehcache和大多数缓存解决方案一样,提供高性能的内存和磁盘存储。
动态、运行时缓存配置,存活时间、空闲时间、内存和磁盘存放缓存的最大数目都是可以在运行时修改的。应用持久化
在
vm重启
后,持久化到磁盘的存储可以复原数据
Ehache是第一个引入缓存数据持久化存储的开源java缓存框架,缓存的数据可以在机器重启后从磁盘上重新获得
根据需要将缓存刷到磁盘。将缓存条目刷到磁盘
的操作可以通过cache.fiush
方法执行,这大大方便了ehcache的使用
四,redis的安装以及使用?
1,先从github上下载window版本,支持32和64位,这时候我们下载Redis-x64-xxx.zip压缩包到 C 盘解压改名为 redis。
2,打开com窗口(win+R --> 输入 cmd),使用cd命令切换到C:/redis
cd..
cd redis
3,在C:/redis 目录下执行以下命令 打开服务
redis-server.exe redis.windows.conf
成功后的效果图
4,这时候要打开另个cmd窗口,不要关闭原来的cmd窗口,不然redis服务会关闭。
5,打开cmd窗口,切换到redis目录下 执行以下命令
redis-cli.exe -h 127.0.0.1 -p 6379
这样就进入了redis的命令操作
五,常用的redis命令
Redis -cli --操作redis数据库(需要在redis目录下执行哦)
Quit --关闭操作redis数据库
六,对键的操作
1,设置键值(key)对的值(value),删除键。
Set key value --设置键值
Del key --删除键
2,判断一个键是不是存在。
Exists key
3,设置一个key的过期时间
Expire key 10 单位:秒
4,删除key的过期时间(在过期之前进行才有意义)
Prsist key
5,查询符合某个模式的key
Keys goods* -- 查询有以goods开头的key
Keys * --查询所有的key
6,查询key对应的类型
Type key
1、删除所有的key,可以使用redis自身的命令:
flushdb 删除当前数据库中的所有Key
flushall 删除所有数据库中的key
2、使用linux中的xargs来删除所有的key
redis-cli keys "*" | xargs redis-cli del
3、删除包含有某些关键字的key
redis-cli keys "xxx*" | xargs redis-cli del
4、如果需要指定密码,可以这样使用:
redis-cli -a pwd keys "*" | xargs redis-cli -a pwd del