zoukankan      html  css  js  c++  java
  • redis详解

    简述

      redis是一款高性能的NOSQL系列的非关系型数据库,与关系型数据库不同redis的数据是存储在内存中的。因为操作关系型数据库的过程非常耗时,当服务器查询一些不太经常变化的数据时,我们可以把这些数据放到内存中,这和缓存类似,先到redis中查询,有数据就不用查mysql了。

      主流的NOSQL产品有键值形式存储数据库、列存储数据库、文档型存储数据库、图形式数据库,本片博客介绍的redis就是键值形式存储的数据库。

    redis的数据结构

      我们需要知道的是redis存储的是键值对,其中key是字符串形式,value有5种不同的数据结构

    字符串类型 string  
    哈希类型 hash  map格式
    列(链)表类型 list linkedlist格式。支持重复元素
    集合类型 set  不允许重复元素
    有序集合类型 sortedset 不允许重复元素,且元素有顺序

    redis的下载和安装

      官网:https://redis.io/ 中文网:https://www.redis.net.cn/

      下载好并解压后我们得到如下文件

      解压后可直接使用,我们只需关心三个文件

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

      想要运行直接运行redis-server.exe即可,它监听的端口是6379

      运行redis-server.exe后不关闭cmd窗口,运行redis-cli.exe即可连接到本机的redis数据库,就可以敲命令了

    常用命令操作

    字符串类型

    存储 set key value
    获取 get key
    删除 del key

    哈希类型  

      Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

    存储 hset key field value
    获取

    hget key field   获取对应的field的value

    hgetall key       获取当前的所有key和value对应关系

    删除 hdel key field

      注意field是当前key的value里的key

    列表类型

      列表也是链表,它按照插入顺序进行排序,我们可以添加一个元素到列表的头部或尾部

    添加

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

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

    获取 lrange key start end
    删除

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

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

      注意lrange的起始和结束索引是从0开始左闭右闭的,若想获取所有数据则为 0 -1

      这种形式我们可以当成一个双向队列来理解

    集合类型

      Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

      Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

    存储 sadd key value
    获取 smembers key:获取set集合中所有元素
    删除 srem key value:删除set集合中的某个元素

     

    有序集合类型

      Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。

    存储 zadd key score value
    获取 zrange key start end [withscores]
    删除 zrem key value

      注意在zrange后加withscores参数会同时把他们的分数拿出来

    通用命令

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

    redis的持久化

      redis是内存中的数据库,当redis服务器重启或者电脑重启,数据就会丢失。我们可以把redis的数据持久化到硬盘中,这样数据就不会丢失。数据库持久化方法分为RDB和AOF两种方式。

    RDB  

      RDB是默认方式,不需要进行配置。redis会在一段时间内检测key的变化,然后持久化数据。

      我们打开redis的配置文件,可以看到save段有三行,代表:

    save 900 1 900秒之后有1个key发生了改变就进行一次持久
    save 300 10 300秒之后有1个key发生了改变就进行一次持久
    save 60  10000 900秒之后有1个key发生了改变就进行一次持久

      我可以根据服务器的需求更改这三个配置文件,并通过以配置文件方式打开redis,达到自动保存的条件后redis会自动把数据持久化到redis的根目录下,文件名叫dump.rdb。当我们重启数据库后redis会自动将持久化的数据载入内存。

    AOF 

      AOF是日志记录的方式,可以记录每一条命令的操作。可以每一次命令后持久化数据,对性能影响比较大。

      我们打开redis的配置文件,找到appendonly的配置项,将no改为yes即可

      改为yes就开启了AOF的持久化操作,再到下面找到有三种配置

    appendfsync always 每一次操作都进行持久化
    appendfsync everysec 每隔一秒进行一次持久化
    appendfsync no 不进行持久化

      配置完后我们打开redis服务端,然后用客户端添加数据,可以看到redis目录下有一个叫appendonly.aof的持久化文件

      当我们再次启动服务器,再打开就有数据了

     

    一点一点积累,一点一点蜕变!
  • 相关阅读:
    OnsenUI和AngularJS配合搭建混合应用基本步骤
    cordova plugin add cordova-plugin-dialogs cordova自定义插件
    Android题目
    Service服务
    SD卡 存储与读写
    Service服务生命流程 广播Broadcast
    Volley 网络请求 (常用)
    Jason 键值对 网络请求
    写文件
    aaa
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/14962345.html
Copyright © 2011-2022 走看看