ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

redis面试小结(一)

2021-06-13 20:32:40  阅读:186  来源: 互联网

标签:存储 set myhash 数据库 redis 面试 内存 小结


最近在看狂神的视频 总结了一下他上课讲的东西 超级佩服膜拜狂老师

什么是NoSql

Nosql=not only sql(不仅仅是sql)
Nosql泛指非关系型数据库,随着web2.0互联网的诞生,传统的关系型数据库很难对付web2.0时代尤其是超大规模的高并发的社区,暴露出很多难以克服的问题,Nosql在当年大数据环境下发展的十分迅速,redis是其中发展最快的,而且是我们当下必须要掌握的一门技术

很多的数据类型比如用户的个人信息、社交网络、地理位置。这些数据类型的存储不需要一个固定的格式,不需要多月的操作就可以横向扩展 比如Map<String,Object>使用键值对来控制

redis五大基本数据类型

  • String
  • List
  • Set
  • Hash
  • Zset

三种特殊数据类型

  • geo
  • hyperloglog
  • bitmap

redis持久化

  • ROB

  • AOF

了解一下3v 3高

3v :描述问题

  • 海量Volume
  • 多样Variety
  • 实时Velocity

3高:主要对程序的要求

  • 高并发
  • 高可扩
  • 高性能

Nosql的四大分类

kv键值对

  • 新浪:redis
  • 美团:redis+Tair
  • 阿里、百度:redis+memecashe

文档型数据库

  • MongoDB:
    • 基于分布式的文件存储的数据库,主要用于处理大量文档,c++写的
    • 是一种介于关系型数据库与非关系型数据库中间的产品,是非关系型数据库中功能最丰富,最想关系型数据库的
  • ConthDB

redis

是什么?

  • redis会周期性的把更新的数据写入磁盘或者把修改的操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步、免费开源、是当下最热门的Nosql技术之一,也称结构化数据库

redis能干吗

  • 内存存储、持久化、内存中是断电即失,所以说持久化很重要(rdb 、aof)

redis是单线程的

  • redis是很快的,是基于内存的操作,cpu不是redis 性能的瓶颈,redis的瓶颈是机器的内存和网络带宽
  • redis是c语言写的 ,读写速度100000qps左右,不比k-v(对象缓存系统)的memecache差

redis为何是单线程的还这么快

  • cpu>内存>硬盘
  • redis是将所有的数据全部存储在内存中,所以说使用单线程是效率最高的,(多线程:cpu会上下文切换,这是一个耗时操作

redis基本命令

set:

  • sadd myset hello :向set集合中添加元素
  • smember mykey :查看指定set的所有值
  • sismember myset hello :判断一个值是不是在set集合中
  • scard myset :获取set集合中的内存元素个数
  • smove myset myset2 hello :移动myset的hello的值到myset2集合

hash

  • hset myhash field1 lwh :set一个具体的k-v
  • hget myhash filed1 :获取一个字段值
  • hmset myhash fileld1 hello field2 world :set 多个k-v
  • hmget myhash fileld1 fileld2 :获取多个字段值
  • hgetall myhash :获取全部数据
  • hlen myhash :获取hash表的字段数量
  • hexists myhash field1:判断hash中指定字段是否存在
  • hkeys myhash:获取所有的(key)filed
  • hvals myhash:获取所有的value

hash适合存储user name age 尤其是用户信息之类的,经常变动的信息,hash 更适合于对象的存储,string更适合字符串存储

zset

  • 有序的set集合
  • 可进行排序

geo

  • 存储地理位置信息

hyperloglog(有较小的误差0.81%的错误率 ,效率高)

  • 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
  • 在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

​ bitmap

  • 位存储 就0 1 两个状态

标签:存储,set,myhash,数据库,redis,面试,内存,小结
来源: https://blog.csdn.net/java_cch/article/details/117885055

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有