zoukankan      html  css  js  c++  java
  • Redis

    Redis

    Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库

    • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用
    • Redis不仅支持key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储
    • Redis支持数据的备份,即master-slave模式的数据备份

    优势

    • 性能极高,redis能读的速度是11w次/s,写的速度是8.1w次/s
    • 丰富的数据类型,Redis支持二进制案例的Strings、Lists、Hashes、Sets及Ordered Sets数据类型操作
    • 原子,Redis的所有操作都是原子性的,就是要么成功执行所有操作要么完全失败不执行,单个操作是原子性的。多个操作也支持事务,通过MULIT和EXEC指令包起来
    • 丰富的特性,Redis还支持publish/subscribe,通知,key过期等特性

    与其他key-value存储的不同

    • Redis有着更为复杂的数据结构并且提供对他们的原子性操作;Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象
    • Redis运行在内存中但是可以持久化到硬盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面,是紧凑的以追加的方式产生的,因为他们不需要进行随机访问

    Redis和MySQL的区别

    • 数据库类型:mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢;redis是NOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,存储的读取速度快,能够大大的提高运行效率,但是保存时间有限
    • MySQL运行机制:mysql作为持久化存储的关系型数据库,相对薄弱的地方在于每次请求访问数据库时,都存在着I/O操作。第一,导致运行效率过慢;第二,反复的访问数据库也会导致属数据库的负载过高,因此衍生了缓存的概念,缓存就是数据交换的缓冲区(cache),当浏览器执行请求时,首先会在缓存中进行查找,然后再去数据库
    • redis是一款缓存数据库,用于存储使用频繁的数据,这样可以减少访问数据库的次数,提高运行效率

    总结

    1. 类型:
      • mysql是关系型数据库,redis是非关系型数据库
    2. 作用:
      • mysql用于持久化的存储数据到硬盘,但是速度慢
      • redis用于存储使用较为频繁的数据到缓存中,读取速度快
    3. 需求:
      • 一般配合使用

    Redis的安装

    教程:https://www.runoob.com/redis/redis-install.html

    windows下载地址:https://github.com/microsoftarchive/redis/releases

    下载.mis自动配置环境变量

    #1.cmd,redis.windows.conf可省略,会启用默认
    >>redis-server.exe redis.windows.conf
    

    启动服务

    #2.上一个cmd窗口不要关,另开一个cmd窗口,切换到redis安装目录下(也可以不cd?)
    >>D:slkOldBoyRedis>redis-cli.exe -h 127.0.0.1 -p 6379
    >>D:slkOldBoyRedis>set myKey abc
    >>D:slkOldBoyRedis>get myKeys
    

    1574582983161

    Rdis键语法

    #创建key
    >>set KeyName KeyValue
    
    #获取键值、
    >>get KeyName
    
    #删除键
    >>del KeyName
    
    #键是否存在
    >>exists KeyName
    
    #给键设置过期时间,以秒为单位
    >>expire KeyName
    
    #移除键的过期时间
    >>persisy KeyName
    
    #给键重命名
    >>rename KeyName NewName
    
    #返回数据类型
    >>type KeyName
    

    Redis哈希

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

    Redis中每个hash可以存储2**32-1键值对(40多亿)

    #设置值(当字段不存在时)
    >>hsetnx Key Field Value
    
    #设置值,可设置多个
    >>hmset Key Field Value
    
    #查看指定字段是否存在
    >>hexists Key Field
    
    #获取值
    >>hget key field
    
    #获取指定键中所有字段和值
    >>hgetall Key
    
    #获取指定哈希表中所有字段
    >>hkeys Key
    
    #获取指定哈希表中所有值
    >>hvals Key
    
    #获取哈希表中字段数
    >>hlen Key
    
    
    
  • 相关阅读:
    jQuery弹出层插件大全:
    JavaScript数组去重的几种方法
    sql去除重复列(行)
    VS无法启动调试
    .将DayOfWeek转换成中文的几种方式
    关于 uniqueidentifier
    链接服务器
    我的目标:系统架构师
    异常(1)
    Visual C++开发工具与调试技巧整理
  • 原文地址:https://www.cnblogs.com/shenblog/p/12022880.html
Copyright © 2011-2022 走看看