redis的概念优劣势及基础命令的学习(一)

1、Redis的高并发和快速原因

1.redis是基于内存的,内存的读写速度非常快;
2.redis是单线程的,省去了很多上下文切换线程的时间;
3.redis使用I/O多路复用技术,可以处理并发的连接。(客户端的连接不占用 线程资源,只有当命令成功发送的时候,才会进入单线程,然后依次执行)
解释:多路:多个socket、多个客户端、多个黑窗口
复用:复用那一个线程
在这里插入图片描述

2、为什么Redis是单线程的 划重点 !!!!!

1.官方答案
因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。

3、 Redis单线程的优劣势 划重点 !!!!

1)单进程单线程优势
代码更清晰,处理逻辑更简单

2)单进程单线程弊端
无法发挥多核CPU性能,不过可以通过在单机开多个Redis实例来完善。
4、redis中的数据类型有哪些?
1 String:字符串类型,一个key对应一个值,可以存储任何内,图片、视频都行,但是大小限制在512m以内
2 List:一个key对应多个值,值可以重复
3 set:一个key对应多个值,值不可以重复
4 Hash:key后面继续跟field属性,从而确定一个值
5 zSet:有序不重复集合,可以自动排序,一个key对应多个值

5、跳表的原理是什么?

答:跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。 redis的zset类型的底层就是用了这种数据结构

6.redis关键命令

Redis key
1.exists key判断某个key是否存在
2.expire key 10 10秒钟:为给定的key设置过期时间

String
1.setnx key value :只有在key不存在的时候设置key的值
常用来做分布式锁
2.incrby / decrby <步长>将 key 中储存的数字值增减。自定义步长

划重点 !!!

List
1.lpop/rpop 从左边/右边吐出一个值。值在键在,值光键亡。
2.lrange

Set

1.sadd <key><value1><value2>
将一个或多个 member 元素加入到集合 key 中,已经存在的 member 元素将被忽略
2.smembers
3.set类型数据的扩展操作
sinter <key1><key2>返回两个集合的交集元素。
sunion <key1><key2>返回两个集合的并集元素。
sdiff <key1><key2>返回两个集合的差集元素(key1中的,不包含key2中的)
smove <source><destination>value把集合中一个值从一个集合移动到另一个集合

Hash
1.hset 给集合中的 键赋值
2.hget 从集合取出 value
3.hexists 查看哈希表 key 中,给定域 field 是否存在。

Zset 划重点 !!!!

1.zrangebyscore key minmax [withscores] [limit offset count]返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
2…zrevrangebyscore key maxmin [withscores] [limit offset count] 同上,改为从大到小排列。
3.zincrby <key><increment><value> 为元素的score加上增量
4.zcount <key><min><max>统计该集合,分数区间内的元素个数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值