Redis基础知识

关于Redis的基础知识:
1.什么是redis?

Remote Dictionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库

redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
2.Redis默认有16个数据库,默认使用第0个。
在这里插入图片描述
Linux下使用select 切换数据库。
flushdb 清空当前数据库 flushall清空所有数据库
3.默认端口号 :6379
为什么是6379,有兴趣可以了解下。

https://blog.csdn.net/weixin_42075590/article/details/80748128
4.redis是单线程的
redis是基于内存操作,取决于机器内存和网络带宽。
redis 6.0加入多线程就是为了优化网络I/O
为什么单线程还很快?

redis是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的,多线程CPU上下文会切换会很耗时,对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上!

5.五大数据类型
(1)String
基本命令:incr(自增) incrby (可以设置步长,指定增量) decr(自减) append(附加) ,getrange(截取字符串)setrange(替换字符串) setex(set with expire设置过期时间)setnx(不存在再设置 常用于分布式锁)mset(同时设置多个值),mget(同时获取多个值)msetnx(原子性操作)getset(组合命令,不存在值则返回nil,存在值,获取原来的值,并设置新的值)…

String使用场景:

  • 访问量计数器
  • 统计数量
  • 对象缓存存储

(2)List
基本命令:Lpush(将一个或多个值插到列表头部(左))Rpush (右)Lrange(通过区间获取具体值) Lpop(移除列表第一个元素)Rpop(移除列表最后一个元素)Lindex(通过下标获取某一个值) Llen(返回列表长度) Lrem(移除指定的值)Ltrim(通过下标截取指定的长度)Lset(存在则更新下标的值 不存在就报错)Linsert(将某个value插入到列表中某个元素前面)
(3)Set
(4)Hash
(5)ZSet
6.三种特殊数据类型
(1)Geospatial 地理位置
(2)Hyperloglog 基数统计
(3)BitMap位图场景

7.memcached和redis有什么区别?

  1. 数据操作不同
    memached仅支持key-value数据存储,redis支持String Hash List Set ZSet五种数据类型
    memached不支持持久化,redis提供了持久化和复制等功能
  2. 性能不同
    由于Redis广泛使用的版本只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis。
  3. 存储方式不同
    memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小;
    redis有一部分存在硬盘上,这样能保证数据的持久性。
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值