Redis入门

Redis 基础

Redis简介

NoSQL

NoSQL:即not-onlySQL(泛指非关系型数据库),作为关系型数据库的补充。

作用:应对基于海量用户和海量数据前提下的数据处理问题。

特征:

  • 可扩容,可伸缩

  • 大数据量下高性能

  • 灵活的数据模型

  • 高可用

常见的NoSQL数据库:

  • Redis
  • memcache
  • HBase
  • MongoDB

Redis

概念:Redis(REmote DIctionaryServer)是用C语言开发的一个开源的高性能键值对(key-value)数据库。

特征:

  • 数据间没有必然的关联关系
  • 内部采用单线程机制进行工作
  • 高性能。官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是80000次/s
  • 多数据类型支持
    • 字符串类型 string
    • 列表类型 list
    • 散列类型 hash
    • 集合类型 set
    • 有序集合类型 sorted_set
  • 持久化支持。可以进行数据灾难恢复

Redis的应用

  • 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等。
  • 任务队列,如秒杀、抢购、购票排队等。
  • 即时信息查询,如排行榜、访问量统计、公交到站信息、在线人数信息(聊天室、网站)。
  • 时效性信息控制,如验证码控制、投票控制。
  • 分布式数据共享,如分布式集群架构中的session分离。
  • 消息队列
  • 分布式锁

使用Redis

Redis核心文件:

  • redis-server.exe 服务器启动命令
  • redis-cli.exe 命令行客户端
  • redis.windows.conf redis核心配置文件
  • redis-benchmark.exe 性能测试工具
  • redis-check-aof.exe AOF文件修复工具
  • redis-check-dump.exe RDB文件检查工具(快照持久化文件)

启动Redis

  • 通过启动redis-server.exe启动redis

命令行工具使用Reids

  • 功能性命令

    • 增加数据:设置key,value数据

      • //命令
        set key value
        //范例
        set name redis
        
    • 信息查询:根据key查询对应的value,如果不存在返回(nil)

      • //命令
        get key
        //范例
        get name
        
    • 删除数据:根据key删除指定数据,执行成功会返回integer,删除成功会返回1,失败或不存在返回0

      • //命令
        del key
        //范例
        del name
        
  • 清除屏幕信息

    • clear
      
  • 帮助信息查询

    • //命令
      help 命令名
      help @组名
      //范例
      help set 可查看set的详细用法
      help @string 可查看string的所有命令
      
  • 退出指令

    • quit
      exit
      <esc>
      

Redis数据类型

string类型

  • 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型

  • 存储数据的格式:一个存储空间保存一个数据

  • 存储内容:通常使用字符串,如果字符串以整数形式展示,可以作为数字操作使用

    Redis存储空间
    key1---张三
    key2---李四
    

hash类型

  • 新的存储需求:对一系列的数据进行编组,方便管理,典型应用就是存储对象

  • 需要的存储结构:一个存储空间保存多个键值对数据

  • hash的value只能是string,不可以嵌套

    Redis存储空间
    	  field1  value
    key   field2  value
    	  field3  value
    

list类型

  • 数据存储需求:存储多个数据,并对数据进入存储空间的顺序区分
  • 需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序
  • list类型:保存多个数据,底层使用双向链表结构实现
  • list类型最好使用右进左出的顺序
  • 一般用在消息队列,日志打印等

set类型

  • 新的存储需求:存储大量的数据,在查询方面提供更高的效率
  • 需要的存储结构:能够保存大量的数据,搞笑的内部存储机制,便于查询
  • set类型:与hash存储结构完全相同,仅存键,不存值,并且值是不允许重复的

sorted_set类型

  • 新的存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式
  • 需要的存储结构:新的存储模型,可以保存可排序的数据
  • sorted_set类型:在set的存储结构基础上添加可排序字段
  • sorted_set是不允许重复的,反复插入会被覆盖,要修改score可通过zincrby

Java连接redis

引入jedis依赖

  • 也可以引入jar包来使用,我这里使用的是spring boot的pop文件引入
<dependency>
  		<groupId>redis.clients</groupId>
  		<artifactId>jedis</artifactId>
  		<version>2.9.0</version>
</dependency>

使用Redis

  • 通过Jedis自带的连接池获取连接
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisUtil {
    private static JedisPool jp=null;
    static {
	JedisPoolConfig jpc=new JedisPoolConfig();
	//设置最大链接数
	jpc.setMaxTotal(30);
	//设置活动链接数
	jpc.setMaxIdle(10);
	String host="127.0.0.1";
	int port=6379;
	jp=new JedisPool(jpc,host,port);
    }
    public static Jedis getJedis() {
	return jp.getResource();
    }
}
  • 开始使用redis
import redis.clients.jedis.Jedis;

public class Test {
    public static void main(String[] args) {
	//获取redis连接
	Jedis jedis = JedisUtil.getJedis();
	//set一个数据
	jedis.set("name","123");
	System.out.println(jedis.get("name"));
	//用完记得关闭
	jedis.close();
	//最终打印结果 123
    }
}

redis常用命令

Redis常用命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值