zoukankan      html  css  js  c++  java
  • Java 之 Redis 基础

    一、Redis 概述

      1、什么是 Redis

        Redis:redis 是一款高性能的 NOSQL 系列的非关系型数据库。

        Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求。

        目前为止 redis 支持的键值数据类型如下:

        ① 字符串类型      String

        ② 哈希类型          hash

        ③ 列表类型          list

        ④ 集合类型          set

        ⑤ 有序集合类型   sortedset

      2、Redis 的应用场景

        (1)缓存(数据查询、短连接、新闻内容、商品内容等)

        (2)聊天室的在线好友列表

        (3)任务队列。(秒杀、抢购,12306等)

        (4)应用排行榜

        (5)网站访问统计

        (6)数据过期处理

        (7)分布式集群架构中的 session 分离

    二、下载安装

      1、官网:https://redis.io

      2、中文官网:http://www.redis.net.cn/

      3、解压直接可以使用

        •  redis.windows.conf:配置文件
        •     redis-cli.exe :redis 的客户端
        •     redis-server.exe : redis 服务器端

    三、Redis 的数据结构

      redis 存储的是:key,value 格式的数据,其中 key 都是字符串,value 有5种不同的数据结构

      value 的数据结构

        (1)字符串类型: string

        (2)哈希类型 hash :map 格式

        (3)列表类型 list    :linkedlist 格式,支持重复元素

        (4)集合类型 set    :不允许重复元素

        (5)有序集合类型 sortedset:不允许重复元素,且元素有顺序

      示意图:

      

    四、命令操作

      1、操作字符串类型

        (1)存储

          语法格式

    set key value:存入键值对
    

          如:

    set username zhangsan
    

      

        (2)获取

          语法格式

    get key: 根据键获取值 
    

           如:

    get username
    

      

        (3)删除

          语法格式:

    del key:根据键删除键值对
    

          如:

    del age
    

      

      2、操作hash哈希类型

        (1)存储

          语法格式:

     hset key field value:根据键存入,filed为字段名,value为值
    

          如:

    hset myhash username lisi
    hset myhash password 123
    

      

        (2)获取

          语法格式

    hget key field: 根据键获取指定的field对应的值
    hgetall key:获取所有的field和value
    

          如:

    hget myhash username
    hgetall myhash
    

      

        (3)删除

          语法格式

    hdel key field
    

          如:

    hdel myhash username
    

      

      3、操作list列表类型

          列表类型类似于队列结构,可以添加一个元素到列表的头部(左边)或者尾部(右边)

        (1)添加

          语法格式

    lpush key value: 将元素加入列表左表
    rpush key value:将元素加入列表右边
    

          如:

    lpush myList a
    rpush myList c
    

      

        (2)获取

          语法格式

    lrange key start end :范围获取
    

          如:

    lrange myList 0 -1 :0表示开头,-1表示尾部
    

      

        (3)删除

          语法格式

    lpop key: 删除列表最左边的元素,并将元素返回
    rpop key: 删除列表最右边的元素,并将元素返回
    

      

      4、操作set集合类型

        (1)存储

          语法格式

    sadd key value:根据键存入值,不允许重复
    

          如:

    sadd myset a
    

      

        (2)获取

          语法格式:

    smembers key:根据键获取set集合中所有元素
    

          如:

    smembers myset
    

      

        (3)删除

          语法格式

    srem key value:删除set集合中的某个元素	
    

          如:

    srem key value:删除set集合中的某个元素	
    

      

      5、操作sortedset有序集合类型

        sortedset 不允许存储重复元素,且元素有顺序,每个元素都会关联一个double类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。

        (1)存储

          语法格式:

    zadd key score value:根据键存入值,score 为键指定的分数,作为排序的依据
    

          如:

    zadd mysort 60 zhangsan
    zadd mysort 50 lisi
    

      

        (2)获取

          语法格式

    zrange key start end [withscores]:withscores作为可选项,添加上,会把对应的分数打印出来
    

          如:

    zrange mysort 0 -1
    zrange mysort 0 -1 withscores
    

      

        (3)删除

          语法格式

    zrem key value:删除指定键集合中的值
    

          如:

    zrem mysort lisi
    

      6、通用命令

    keys * : 查询所有的键
    type key : 获取键对应的value的类型
    del key:删除指定的key value
    

        注意如果给指定的键多次赋值的话,最后一次的赋值会覆盖前面的值。

    五、Redis 持久化

       redis 是一个内存数据库,当 redis 服务器重启,或者电脑重启后,数据会丢失,我们可以将 redis 内存中的数据持久化保存到硬盘的文件中。

      Redis 持久化机制

      1、RDB 方式

        RDB:默认方式,不需要进行配置,默认就使用这种机制。

        在一定的间隔时间中,检测 key 的变化情况,然后持久化。

        如果需要修改,执行下面两步即可。

        (1)编辑 redis.windows.conf 配置文件

    #   after 900 sec (15 min) if at least 1 key changed
    save 900 1
    #   after 300 sec (5 min) if at least 10 keys changed
    save 300 10
    #   after 60 sec if at least 10000 keys changed
    save 60 10000
    

          这是默认的设置,当然也可以根据自己的需要进行设置,然保存

        (2)在 DOM 命令窗口,重新启动 redis 服务器,并制定配置文件名称即可。

          如:

    E:
    edis
    ediswindows-64
    edis-2.8.9>redis-server.exe redis.windows.conf
    

      

      2、AOF 方式(不推荐使用)

        AOF 方式,日志记录的方式,可以记录每一条命令的操作。可以每次命令后,持久化数据。

        修改操作:编辑 redis.windows.conf 文件

    appendonly no(关闭aof) --> appendonly yes (开启aof) 默认情况是关闭的,设置为 yes 为打开
    				
    # appendfsync always : 每一次操作都进行持久化
    appendfsync everysec : 每隔一秒进行一次持久化
    # appendfsync no	 : 不进行持久化
    

      

  • 相关阅读:
    触达项目涉及到的功能点
    NodeJS编程基础
    C#Socket通讯
    HTML转义字符大全
    C# 二进制,十进制,十六进制 互转
    浏览器的分类
    Prometheus设置systemctl管理
    第十五讲:Pagerduty的联用
    第十四讲:Prometheus 企业级实际使⽤二
    第十三讲:Prometheus 企业级实际使⽤
  • 原文地址:https://www.cnblogs.com/niujifei/p/11632742.html
Copyright © 2011-2022 走看看