0
点赞
收藏
分享

微信扫一扫

Redis 内存数据库

Redis简介

  • 完全开源免费的高性能的key-value数据库。
  • 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进
    行使用;
  • 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储;
  • 支持数据的备份,即master-slave模式的数据备份;
  • 性能极高,Redis能读的速度是110000次/s,写的速度是81000次/s;
  • Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来;
  • 支持publish/subscribe,通知, key过期等等特性。


Redis作用

  • cache:做mysq|的缓存,从mysq|l读出来的数据,可以缓存到redis用于应用的访问。
  • message broker:先把数据存到redis,到了一定阶段再保存到mysql

Redis缓存与CDN缓存的区别

  • redis的缓存:redis是一 个服务, 把数据保存在内存中,根据redis协议,可以高速访问
  • cdn缓存:cdn缓存的网页和图片,所以保存的是文件。通常使用nginx+nginx cache机制把文件放到内存中。接受http协议访问。他服务于文件,没法服务数据结构存储,比如无法保存一个数组或者词典。cdn是缓存文件,而不是数据库。
  • 共同的特征:都充分利用了内存,把数据尽量放到内存中。只是存储的内容不同,服务的方式不同。

Redis安装

Redis使用

  • 打开一个cmd窗口使用cd 命令切换目录到安装目录


  • 运行redis-server.exe redis.windows.conf开启服务

  • 如果遇到如下报错,解决方案:win+R然后输入services.msc,调出Windows服务,
    然后找到Redis,右键手动停止就好


  • 另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端,切换到redis目录下运行:redis-cli.exe -h 127.0.0.1 -p 6379

基本数据结构

  • String:是二进制安全的,意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象,最大能存储512MB

  • Hash:—个string类型的key和value的映射表,hash特别适合用于存储对象,存储232-1键值对(40多亿)。

  • List:按照插入顺序排序,你可以添加一个元素到列表的头部(左边)或者尾部(右边)。可存储232-1元素(每个列表可存储40多亿)

  • Set:无序集合,通过哈希表实现的,所以添加,删除,查找的复杂度都是0(1)。

  • Sorted Set:有序集合每个元素都会关联—个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

各个数据类型的应用场景

基本使用

  • String:SET key member:设置值;GET key:获取值

  • Hash:HMSET key field1 "Hello" field2 "World":设置值;HGET/HGETALL key field1:获取值

  • List:lpush key member:创建列表;lrange key 0 10:获取列表,前后数字代表列表开始和结尾的索引

  • Set:sadd key member:创建集合;smembers key:获取集合的值

  • Sorted Set:zadd key score member:创建;ZRANGEBYSCORE key 0 1000:获取

JAVA使用Redis引入依赖

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
  <dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artiftactId>
    <version>3.1.0</version>
  </dependency>

Java使用Redis-创建Jedis实例

//连接本地的 Redis服务
Jedis jedis = new Jedis ("localhost") ;
jedis.auth("insane") ; /
此处为你设置的密码
System.out.println("连接成功");
//查看服务是否运行
System.out.println("服务正在运行: "+jedis.ping()) ;

修改配置文件redis.windows.conf

举报

相关推荐

0 条评论