iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis学习笔记:基础知识
  • 679
分享到

Redis学习笔记:基础知识

Redis学习笔记:基础知识 2020-08-16 21:08:23 679人浏览 猪猪侠
摘要

    一、NoSQL和关系型数据库区别     NoSQL非关系型数据库:Redis、mongoDB、HBase等,基于Key-Value存储,采用命令操作。     关系型数据库:oracle、Mysql、DB2、SQL Se

Redis学习笔记:基础知识

    一、NoSQL和关系型数据库区别

    NoSQL非关系型数据库RedismongoDBHBase等,基于Key-Value存储,采用命令操作。

    关系型数据库oracleMysql、DB2、SQL Server等,基于表结构存储,采用sql操作。

    二、Redis简介

    Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为: Remote Dictionary Server(远程数据服

务),该软件使用C语言编写,是典型的NoSQL数据库服务器。Redis是一个Key-Value存储系统,它支持丰富的数据类型,如String、Hash、List、Set、

Zset(Sorted Set)。

    三、Redis特点

    优点:

  • 性能极高:Redis能支持每秒10万读写频率。
  • 支持丰富的数据类型:包括String、Hash、List、Set、Zset(Sorted Set)等多种数据类型。
  • 原子性:所有操作都是原子性的(一起成功,或者一起失败)。
  • 支持持久化操作:将内存数据同步到数据文件中。
  • 提供了事务、消息传递等功能。

   缺点:

  • 由于是内存数据库,所以单台机器存储的数据量,取决于机器本身的内存大小。虽然Redis本身有Key过期策略,但是还是需要提前预估及节约

内存,如果内存增长过快,需要定期删除数据。

  • 如果进行完整重同步,由于需要生成rdb文件并进行传输,因此会占用主机的CPU并会消耗网络的带宽。虽然Redis 2.8版本已经有部分重同步的

功能,但是还是有可能完整重同步的,比如新上线的备机。

  • 修改配置文件后,重启将硬盘中的数据加载到内存时,时间比较久。在这个过程中,Redis不能提供服务。

    备注:

    在系统中,通常使用Redis做数据缓存使用。

    查询缓存:第一次查询时会从数据库中取出数据放入缓存,后续查询都将从缓存中读取数据。

    添加/更新缓存:将用户数据通过检测后放入缓存,然后给用户响应,后台开启线程取数据处理。

    四、Redis常用数据类型

    Redis常用的数据类型有5种,即String、Hash、List、Set、Zset(Sorted Set):

    String--字符串

    String是简单的Key-Value 类型,Value不仅可以是String,也可以是数字(当数字类型用Long可以表示的时候encoding就是整型,其它都存储在

sdshdr当做字符串),在List、Set和Zset中包含的独立的元素类型都是Redis String类型。String类型的Value最大为512MB。

    Hash--字典

    Hash是最接近关系型数据库结构的数据类型,可以将数据库中一条记录或程序中一个对象转换成HashMap存放在Redis中。在Memcached中,我们

经常将一些结构化的信息打包成hashmap,然后在客户端序列化后存储为一个字符串的值 (一般是JSON格式),比如用户的昵称、年龄、性别等。

Hash的键值对个数最多为2^32-1(4294967295)个。

    List--列表

    List说白了就是链表类型(双端链表),主要功能是push、pop、获取一个范围的所有值等,其中的Key可以理解为链表的名字。在Redis中,List就

是Redis String的列表,按照插入顺序进行排序,比如使用LPUSH命令在List头插入一个元素、使用RPUSH命令在List尾插入一个元素。当这两个命令

之一作用于一个空的Key时,一个新的List就创建出来了。List的元素个数最多为2^32-1(4294967295)个。

    Set--集合

    Set就是一个集合,集合的概念就是一堆不重复值的组合。利用Redis提供的Set数据结构,可以存储一些集合性的数据。在Redis中,Set就是Redis

String的无序集合,不允许有重复元素,对Set的操作有交集、并集、差集等。Set的元素个数最多为2^32-1(4294967295)个。

    ZSet(Sorted Set)--有序集合

    和Set相比,Sorted Set是将Set中的元素增加了一个权重参数score,使得集合中的元素能够按score进行有序排列,对于已经有序的Zset,仍然可以

使用SORT命令,通过指定ASC|DESC参数对其进行排序。Zset的元素个数最多为2^32-1(4294967295)个。

    五、Redis操作命令

    5.1、字符串操作

set key value       //设置value值
get key             //获取value值
strlen key          //获取value长度
incr key            //将value加1
incrby key i        //将value加i
decr key            //将value减1
decrby key i        //将value减i
append key value    //将原有key的值拼接上value值

    5.2、哈希操作

hset key 字段名 字段值                 //设置一组
hmset key 字段名 字段值 字段名 字段值    //设置多组
hget key 字段名                       //获取一个字段值
hmget key 字段名1 字段名2              //获取多个字段值
hlen key                             //获取字段数量
hkeys key                            //查看字段名
hdel key 字段名                       //删除字段名

    5.3、列表操作

lpush key value                           //从头部放入值(key列表存在插入,不存在创建列表插入)
rpush key value                           //从尾部放入值
lpop key                                  //从头部删除一个元素
rpop key                                  //从尾部删除一个元素
lrem key count value                      //删除多少个值等于value的元素
lindex key index                          //获取index位置的value值
lrange key start end                      //获取指定范围的元素
linsert key before|after 元素 要插入的值    //插入元素
lset key index value                      //更新index位置的value值
llen key                                  //获取列表元素数

    5.4、集合操作

sadd key value value     //向集合添加元素
srem key value           //删除value元素
scard key                //获取集合元素数量
smembers key             //查看所有元素
srandmember key count    //获取count个随机数
sinter key1 key2         //两个集合交集,key1和key2都有
suNIOn key1 key2         //两个集合并集,去重复合并
sdiff key1 key2          //差集,key1有,key2没有

    5.5、有序集合

zadd key score value       //向集合添加元素
zrem key value             //删除元素
zcard key                  //元素数量
zrange key start end       //获取指定范围的元素(小到大)
zrevrange key start end    //获取指定范围的元素(大到小)
zrevrank key value         //获取value索引(大到小)
zrank key value            //获取value索引(小到大)

    5.6、key操作

keys pattern         //查看key
del key              //删除key
expire key time      //设置有效时间(秒)
type key             //判断value值类型
rename key newkey    //修改key名称

    六、Redis文件格式

    Redis使用了两种文件格式:全量数据和增量请求。

    全量数据:是把内存中的数据写入磁盘,便于下次读取文件时进行加载。

    增量请求:是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据,序列化的操作包括SET、RPUSH、SADD、ZADD。

    备注:Redis的存储分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。

    七、Redis应用场景

    (1)会话缓存(Session Cache)

    (2)全页缓存(FPC)

    (3)队列

    (4)排行榜/计数器

    (5)发布/订阅

 

    参考自:

    https://blog.csdn.net/weixin_39671217/article/details/78021732

您可能感兴趣的文档:

--结束END--

本文标题: Redis学习笔记:基础知识

本文链接: https://www.lsjlt.com/news/4691.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 学习笔记:Java 打包对象的基础知识
    Java 打包对象是一项重要的基础知识,也是 Java 开发中必须掌握的技能。本文将介绍 Java 打包对象的基础知识,包括打包对象的定义、打包对象的用途、打包对象的实现方法和注意事项等方面,同时还将提供一些演示代码,以帮助读者更好地理解和...
    99+
    2023-10-03
    打包 对象 学习笔记
  • python基础知识笔记
    参考视频和资料:2022新版黑马程序员python教程,8天python从入门到精通,学python看这套就够了_哔哩哔哩_bilibili 最后有知识的思维导图!  Python入门学习 Day1 解释器:pycharm 一、Pychar...
    99+
    2023-08-31
    pycharm ide python
  • Python 基础知识学习
    1、Python 基础教程      Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。2、执行Python程序     实例(Python 2.0+)     print "Hello, World!";  3、环境搭建...
    99+
    2023-01-31
    基础知识 Python
  • 学习nginx基础知识
    目录一.什么是nginx?二.nginx能干什么?2.1 什么是正向代理?2.2 什么是反向代理?2.3负载均衡2.4 动静分离三.nginx基本操作3.1 nginx配置文...
    99+
    2024-04-02
  • python3学习知识点笔记
    class Class_name(object): # 声明类Class_name,继承自objectclass Class_name: #不显示继承自object,创建类Class_nameclass Fruit: #创建水果类     ...
    99+
    2023-01-31
    知识点 笔记
  • python学习笔记01-基础
    数据类型:(1)整数(2)浮点数整数和浮点数在计算机内部存储的方式是不同的(3)字符串字符\本身也要转义,所以\表示的字符就是\Python还允许用r''表示''内部的字符串默认不转义(4)布尔值在Python中,可以直接用True、F...
    99+
    2023-01-31
    学习笔记 基础 python
  • Python学习基础笔记(全)
    换博客了,还是csdn好一些。 Python学习基础笔记 1.Python学习—linux下Python3的安装 2.Python学习—数据类型、运算符、条件语句 3.Python学习—循环语句 4.Python学习—字符串 5.Pyt...
    99+
    2023-01-31
    基础 笔记 Python
  • PHP和NumPy学习笔记:Git的基础知识和常用命令
    作为一名程序员,我们经常需要协同开发,这时候版本控制工具就显得尤为重要了。Git 是目前最流行的版本控制工具之一,它可以帮助我们管理代码版本,协同开发,回溯历史记录等等。本文将介绍 Git 的基础知识和常用命令,并使用 PHP 和 Num...
    99+
    2023-10-07
    numy 学习笔记 git
  • python基础概念学习笔记
    本次整理python数据类型为:列表list字典dict元组tuple集合set其中涉及概念:模组module类class对象object——————————————————————————————————————————数据类型type ...
    99+
    2023-01-31
    学习笔记 概念 基础
  • GO语言学习笔记:如何快速掌握语言的基础知识?
    随着技术的不断发展,越来越多的程序员开始学习GO语言。GO语言是Google于2009年推出的一种编程语言,它的设计目标是提供一种简单、高效、可靠的编程语言。GO语言在性能、并发性和可维护性方面表现出色,因此受到了众多开发者的青睐。本文将...
    99+
    2023-06-28
    学习笔记 教程 开发技术
  • Web安全入门基础知识(笔记)
    目录 0x01 基础名词 一、域名 1.什么是域名 2.域名在那里注册 3.什么是二级域名,多级域名,顶级域名 4.域名发现对于安全测试的意义 二、DNS 1.什么是DNS 2.本地host和DNS的关系 3.CDN是什么,和D...
    99+
    2023-09-16
    web安全 服务器 网络
  • mysql学习笔记之基础测试
    10. 基础测试 10.1...
    99+
    2024-04-02
  • MySQL的知识点整理(学习笔记)
    目录 一、认识数据库 1. 什么是数据库 2. 数据库类型 3. 常见的数据库管理系统 4. MySQL介绍 5. MySQL的安装&管理工具的安装 6. SQL概述 7. 在DOS系统中操作MySQL 8. MySql常用命令 二、操作...
    99+
    2023-09-09
    mysql 数据库 学习 笔记
  • Three.js概述和基础知识学习
    目录1.Three.js简介2.Three.js的历史3.Three.js的应用4.基础知识4.1 场景(Scene)4.2 相机(Camera)4.3 渲染器(Renderer)4...
    99+
    2023-05-20
    Three.js概述基础知识 Three.js基础知识
  • Vue基础学习知识有哪些
    这篇文章将为大家详细讲解有关Vue基础学习知识有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Vue基础介绍1.什么是Vue.jsVue.js 是目前最火的一个前端框架,React是最流行的一个前...
    99+
    2023-06-22
  • 机器学习之基础知识(全)
    目录 1.机器学习概述 1.1 人工智能概述 1.1.1 人工智能使用场景 1.1.2 人工智能小案例 1.2 人工智能发展历程 1.2.1 图灵测试 1.2.2 发展历程 1.2.3 小结 1.3 人工智能主要分支 1.3.1 人工智能、...
    99+
    2023-08-31
    机器学习
  • CCIE学习(3)——基础知识回顾
    ●以太网标准 1)10BASE5:粗同轴电缆传输 2)10BASE2:细同轴电缆传输 3)10BASE-T:第一个使用双绞线传输的以太网标准 4)DIX Ethernet Version 2:原始以太...
    99+
    2023-01-31
    基础知识 CCIE
  • Spring5学习之基础知识总结
    目录1.概述2.入门Demo3.源码1.概述 1、Spring 是轻量级的开源的 JavaEE 框架 2、 Spring 可以解决企业应用开发的复杂性 3、Spring 有两个核心部...
    99+
    2024-04-02
  • 老生常谈的Python基础知识学习笔记,老师又敲黑板了
    Python基础知识笔记总结元组Tuple是“不可变”的列表。内容及总数不可修改的。使用小括号tup1=('zhansan',1992,'physics')允许使用元组运算符产生新的元组(5,6,7)+(8,...
    99+
    2023-06-02
  • 学习爬虫必须学的基础知识
    数据的来源1)用户自行产生2)去第三方的公司购买数据3)去免费的数据网站下载数据4)人工收集数据5)爬虫获取2.什么是爬虫网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作