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	 : 不进行持久化
    

      

  • 相关阅读:
    poj 1743 Musical Theme 后缀数组
    poj 1743 Musical Theme 后缀数组
    cf 432D Prefixes and Suffixes kmp
    cf 432D Prefixes and Suffixes kmp
    hdu Data Structure? 线段树
    关于position和anchorPoint之间的关系
    ios POST 信息
    CALayers的代码示例
    CALayers详解
    ios中得sqlite使用基础
  • 原文地址:https://www.cnblogs.com/niujifei/p/11632742.html
Copyright © 2011-2022 走看看