redis学习笔记-01:redis简介
1、redis是一个高性能的Nosql数据库,遵守BSD协议,使用c语言编写、支持网络、可基于内存亦可持久化,是一种日志型、Key-Value数据库,也可看做是一个分布式的、基于内存的缓存工具。
2、NoSQL数据库的产生是为了解决超大规模和高并发的纯动态网站带来的挑战,尤其是大数据应用难题。
3、NoSQL数据库的四大分类:
(1)键值(Key-Value)存储数据库:这一类数据库主要会使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。比如redis,Oracle BDB。
(2)列存储数据库:通常用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。比如HBase。
(3)文档型数据库:该类型的数据库是版本化的文档,以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版本,允许嵌套键值。而且文档型数据库比键值数据库的查询效率更高。比如MongoDB。
(4)图形数据库,比如Neo4J。
4、NoSQL数据库适用的场景:
(1)数据模型比较简单,没有太多的字段
(2)需要灵活性更强的IT系统,查询速度需要更快
(3)对数据库性能要求较高,比如键值对数据库直接由键得到值
(4)不需要高度的数据一致性
(5)对于给定的key,可以映射到复杂值的环境
5、redis与其他键值数据库相比,有三大特点:
(1)redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启时可以再次加载重新使用。
(2)redis不仅仅支持简单的Key-Value类型的数据,而且还提供list、set、zset、hash等数据结构的存储。
(3)redis支持数据的备份、集群等高可用功能,即master-slave模式的数据备份。
6、redis的特点:
(1)性能极高:redis读的速度是110000次/秒,写的速度是81000次/秒
(2)丰富的数据类型:redis支持的数据类型有string、list、hash、set和order set数据类型的操作。
(3)原子性:redis的所有操作都是原子性的,要么成功执行要么失败完全不执行。单个操作是原子性的,多个操作也支持原子性,即事务。
(4)占用内存过高,这是缺点。
7、redis能干啥:
(1)内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务。
(2)取最新N个数据的操作:可以将最新的10条评论的ID放在redis的list集合里面。
(3)模拟类似于HttpSession这种需要设定过期时间的功能。
(4)发布、订阅消息系统。
(5)定时器和计数器。
8、以docker方式安装并启动redis服务
(1)拉取redis镜像到本地:
- docker pull redis
(2)新建redis容器,以后台模式运行。如果简单点,那就写:docker run -p 6379:6379 -d redis redis-server --appendonly yes。
- docker run -p 6379:6379
- -v /dyy/myredis/data:/data
- -v /dyy/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf
- -d redis redis-server /usr/local/etc/redis/redis.conf
- --appendonly yes
(3)docker上的redis已经以后台模式运行,接下来执行以下命令进行交互。
- docker exec -it 容器ID redis-cli
redis学习笔记-01:redis简介的更多相关文章
- redis学习笔记之redis简介
redis简介 Redis是一个开源的,高性能的,基于键值对的缓存与存储系统,通过设置各种键值数据类型来适应不同场景下的缓存与存储需求.同事redis的诸多高层级功能使其可以胜任消息队列,任务队列等不 ...
- Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置
0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...
- Redis学习笔记(4) Redis事务、生存时间及排序
1. Redis事务 Redis中的事务(transaction)是一组命令的集合,一个事务中的命令要么都执行,要么都不执行.事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次 ...
- Redis学习笔记(1) Redis介绍及基础
1. Redis的特性 (1) 存储结构 Redis(Remote Dictionary Server,远程字典服务器)是以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容.Redis支 ...
- StackExchange.Redis学习笔记(一) Redis的使用初探
Redis Redis将其数据库完全保存在内存中,仅使用磁盘进行持久化. 与其它键值数据存储相比,Redis有一组相对丰富的数据类型. Redis可以将数据复制到任意数量的从机中 Redis的安装 官 ...
- redis学习笔记01 — 基本介绍、安装配置及常用命令
redis--NoSQL的一种 为了解决高并发.高可用.高扩展.大数据存储等一系列问题而产生的数据库解决方案,就是NoSQL NoSQL,非关系型数据库,全名:Not Only Sql,它不能代替关系 ...
- redis学习笔记-01 string类型命令
一.set key value set joker 123456 #设定key为joker,value为123456的数据 二.keys * keys * #用于查看该数据库中所有的key值 三.se ...
- redis学习笔记(三)——redis的命令大全总结
总结了一些redis五种存储类型的常用命令以及一些通用操作命令,不是很全,是在学习的时候将学到的做了个汇总,使用的时候可以查一下. 笔记写在表格里面了,不好粘贴.......后面的直接截图了..... ...
- Redis学习笔记(3) Redis基础类型及命令之二
1. 集合类型 集合类型与列表类型有很多相似之处,但二者的区别在于:前者具有唯一性,但不具有有序性:后者具有有序性,但不具有唯一性.集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等, ...
随机推荐
- 14 用DFT计算线性卷积
用DFT计算线性卷积 两有限长序列之间的卷积 我们知道,两有限长序列之间的卷积可以用圆周卷积代替,假设两有限长序列的长度分别为\(M\)和\(N\),那么卷积后的长度为\(L=M+N-1\),那么用 ...
- Cosmetic Bottles - Cosmetic Packaging: What Are The Characteristics Of Trends?
There are certain differences in products, of which cosmetics are the most obvious. In addition to t ...
- java 8 list的stream操作 list中的对象中的某一个成员取出转为该成员的list,以及对象过滤,筛选某个属性后的成员
取成员属性list List<String> configList = codeEntityList.stream().map(t -> t.getName()).distinct( ...
- Hibernate学习(二)
持久化对象的声明周期 1.Hibernate管理的持久化对象(PO persistence object )的生命周期有四种状态,分别是transient.persistent.detached和re ...
- 对于java中反编译命令的使用以及Integer包装类的查看
Integer是基于int的包装类 我们可以用测试代码来看看Integer类是如何实现装箱和拆箱的 public class BoxAndUnbox { /** * @param args */ pu ...
- 什么是函数,干嘛啊,怎么干。一个py程序员的视角.md
目录 前言 本质 math definition py definition class 是类,是对象的蓝本 回到函数 一个结论 self 是什么? 以上就是py世界里函数的定义 什么是函数,干嘛啊, ...
- Redis数据存储结构之String
前言: 在Redis使用中,我们最常使用的操作是set key value,或 get key value .这里面包含了redis最基本的数据类型:String,字符串类型是redis中最基本的类型 ...
- Windows平台VC++ 6.0 下的网络编程学习 - 简单的测试winsock.h头文件
最近学习数据结构和算法学得有点累了(貌似也没那么累...)...找了本网络编程翻了翻当做打一个小基础吧,打算一边继续学习数据结构一边也看看网络编程相关的... 简单的第一次尝试,就大致梳理一下看书+自 ...
- ios中时间倒计时
博客地址 https://github.com/sundayios/SQCountTimeDown.git
- 关于java程序在运行时出现a java exception has occured时解决方法
错误截图: 出现情况原因分析: 1.环境没有配置好,配置java环境变量: 参考 检查是否正确,java javac,可以尝试重新 2.查看使用的jdk版本是否存在版本问题: 例如jdk1.7对中文的 ...