Redis基本知识说明以及五大基本类型讲解

Redis有16个数据库,默认使用的第零个

可以使用select进行切换数据库

可以查看当前数据库的大小

keys * 查看所的key

清空当前库

清空全部数据库

Redis是单线程的

Redis是很快的,Redis是基于内存操作的,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了。

Redis为什么单线程还那么快?

1.误区:高性能的服务器一定是多线程的?

2.误区:多线程一定比单线程效率高?

核心:redis是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的,多线程会CPU上下文切换,比较耗时。多次读写都是在一个cpu上的,所以说在内存情况下,这个就是最佳方案。

Redis数据类型

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串哈希表列表集合有序集合位图hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区

判断key是不是存在

设置过期时间,以及查看剩余秒数 

 

查看key是什么类型

 String类型

动态修改redis中的字符串 ,追加字符串,如果追加的key不存在就相当于set一个key

查看字符串的长度

 网页的浏览量其实就是用redis实现的

 截取字符串,下标从0开始,-1是查看全部的

 替换字符串

setnx 不存在在设置(在分布式锁中会常常使用),如果set的key存在,会set失败

setex set一个key并设置过期时间 

mset  set多个key 

mget  获取多个key

 msetnx如果存在就会set失败

这里是key的一个巧妙的设计:user:{id}:{filed},如此设计在redis中是完全ok的

 

 getset组合命令,如果不存在值会set进去值,并返回空

如果存在值会获取原来的值,并更新新的值

String类型的使用场景:value除了是我们的字符串还可以是我们的数字

  • 计数器
  • 统计多单位的数量
  • 对象缓存存储

 List类型

基本的数据类型,列表

所有的List命令都是用L开头的

LPUSH 将一个值或多个值,插入列表的头部(左)

RPUSH 放到列表尾部(右)

Redis不区分大小写命令

 

 移除

LPOP  移除列表的第一个元素

RPOP  移除list的最后一个元素

Lindex 通过下标获取值

 

返回列表长度

 

移除指定的值:lrem

 ltrim截取指定的,通过下标进行修剪

 移除列表中的一个元素并移到一个新的列表中

rpoplpush

 lset 将列表中的指定下标的值替换为另外一个值,相当于执行一个更新操作

如果不存在列表报错,如果存在则会更新

LINSTER插入一个值

在一个key之前插入

在一个key之后插入

小结:

  • 他实际上是一个链表,before Node after ,left,right 都可以插入值
  • 如果key不存在,创建新的链表
  • 如果key存在,新增内容
  • 如果移除了所有值,空链表,也代表不存在
  • 在两边插入或者改动值,效率最高!中间元素,相对来说效率会低一点
  • 既可以作为队列,也可以作为栈

Set(集合)

set中的值是不能重复的,set开头都是s

scard获取set集合中的内容元素个数

srem移除某一个值

 set无序不重复集合。抽随机

随机抽选出一个元素

 

随机删除元素

spop

 

 将一个指定的值移动到另外一个set集合中

smove

 微博、B站,共同关注(并集)

数字集合类

  • 差集    查询两个set集合中不同的 sdiff

  • 交集 sinter 查询相同的

  • 并集  查询一共的、共同的 sunion

 Hash(哈希)

Map集合,key-map

hash都是h开头

存值、取值

hmset 存多个、hmget取多个

hgetall查看全部的key-value

 删除哈希指定的key字段,对应的value也对应消失 hdel

 获取hash表中的字段数量

判断hash中的key是否存在

 只获得所有的key,只获得所有的value

hash与String类型类似

 

 hash更适合于对象的存储,String更加适合字符串的存储

 Zset(有序集合)

在set的基础上,增加了一个值,增加了一个排序

在系统中可以用做排序

添加一个值,添加多个值

从最小值到最大值排序

 移除

获取有序集合中的个数

 从大到小进行排序

 查询某个区间的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值