Redis解析入门篇(一)

  • 一,前言

   相信大家即使没用过肯定都听说过Redis这个数据库,但是还有很多人,一提起Redis,只知道是个用来做分布式,做缓存的数据库,对于其真正的原理和作用都没有一个很清晰的概念!

   这篇文章的意义就是让大家可以通俗易懂的对该Redis有个清晰的认识,不仅仅是知道其可以用来干什么,更重要的是可以知道为什么可以用来做这,做那。一起来熟悉吧!

  • 二,Redis起源发展

Redis是由意大利人antirez发明,此人早期是系统管理员,后来相继做了嵌入式开发工作,web,到了2007年和朋友一起创建了LLOOGG.com,也正是这个网站,才有了后来的Redis。当时antirez发现自己的网站存在很大的负载问题,于是两年之后,2009年,开发了Redis数据库。

  • 三,Redis简介

一个完全开源免费的nosql数据库,是一个高性能的key-value数据库。
为什么说其是一个高性能的key-value数据库呢? 可以看下面的数据
测试 50个并发执行100000个请求
设置和获取的值是一个256字节字符串
结果读的速度是110000次/s,写的速度是81000次/s
而我们平常的关系型MySQL数据库
mysql 5.5 mysql 5.6 mysql 5.7 :默认的最大并发连接数都是151,上限为100000。

  • 四,Redis安装&入门
    上面了解了Redis的基本来源之后,接着我们就开正式开始Redis的学习吧!

在学的过程中,我会慢慢给大家讲解,Redis的功能对应的应用场景,从而可以更好的掌握Redis!

Redis的安装:
这里讲的是在window环境下的安装,相对Linux环境下的安装简单很多,比如在Linux环境下安装需要额外配置C++的语言环境等等,后续我也会出一个Linux下的安装教程

  • 1 windows下载链接

https://github.com/MSOpenTech/redis/releases
因为使用的是国外的服务器,所以虽然整个只有5m多,但是要下载半天
在这里插入图片描述
下载之后,解压到对应路径,我解压到了G:\Redis,接下来我会以这个路径为准。

  • 2 Redis基本操作
    cd到解压目录,打开Redis服务端
    (这里redis.windows.conf的作用是,按照该配置文件的配置启动服务器)
    在这里插入图片描述
    另外开一个cmd,同样cd到对应的目录,打开客户端服务器
    在这里插入图片描述
    命令解析:
    Redis-cli.exe (客户端) -h (服务端ip地址) -p(服务端口)

String
二进制安全,可以包含任何数据,同时在数据交互的过程中,可以很好的对数据进行加密
基本操作,set和get 设置&取出
在这里插入图片描述

Hash
键值对的集合,就好比是一个键(hash)中包含了多个键值对
一个hash可以存储2^32-1(40多亿个键值对)
正是这一特性,其存储数据是非常好的,通常用来存储数据
(同样是不区分大小)
hmset key key1 value1 key2 value2 key3 value3在这里插入图片描述
hgetall key 显示出该hash下的所有键值对在这里插入图片描述

List
简单的字符串列表,我们可以选择插入顺序。
有序可重复,因为其有序,而且支持左右插入,所以通常会被用来作为消息队列
使用表存键值对
从左边插入数据
(后插入的数据在前面)
lpush key value
在这里插入图片描述
需要注意的是:
List中的key不能和其他数据类型的key相同,否则会报错
(在同一个数据库中,没有表的概念)
(出现相同的key,会覆盖之前的值,但是list类型不能覆盖string,string可以覆盖list类型)
在这里插入图片描述
从右边插入数据
(后插入的数据,在后面)
取出:

在这里插入图片描述

lrange 表名 因为是取数据,所以是从左往右取,最符合业务逻辑,无从右往左取数据,
语法: lrange 键 起始 终点
lrange key 0 3
从零开始取到3,共4个数
lrange key 0 -1
取出整个key的集合在这里插入图片描述
Set
string类型的无序不重复,通过哈希表实现,又因为Hashtable采用的是数组+链表的形式,所以其添加,删除,查找的复杂度都是O(1)
可以利用该唯一性统计访问量
设置&取出
sadd key value1
sadd key value2
将value1和value2添加到该集合中去
同时下图中,222插入了两次,但是只执行了一次,这是因为set是有序的。
在这里插入图片描述
zset
和set关联就如其名字一样,代表有序的set,插入数据时和set一样,天然排序
zadd key score(权重) value
取值的方式却和list很像,正所谓是集合了list和set的优点于一身
取数据:
zrange key 范围 0 -1 (取出所有) withscores(显示对应的权重)
zadd不会重复且有序原理:
1依赖权重给元素排序
若出现重复的元素,那么会替换其权重score,重新进行排序,不会重复出现
2权重相同的情况下,后进在先
在权重相同的情况下,后面进行来的元素会紧接着在该元素的后面一位,后面的元素全部往后移动一位

List: lrange key 0 4 (下标起始点和下标终点)
zset:通过权重进行排序,
zrangebyscore key 0 100 将权重在0-100之内的数据取出
正是由于该有序不重复的特性,常用的使用场景:各种排行榜;带权重的消息队列
以上就是Redis的基础入门篇,后续会持续更新,由入门到熟练应用!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值