`

redis知识整理

阅读更多

redis remote dictionary service  远程字典服务

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及   zset(sorted set:有序集合)。 其中string类型是Redis最基本的数据类型,一个键最大能存储512MB。

 

服务端是非阻塞模式;首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。
客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。
Redis 管道技术
Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。
开启管道后,我们的速度效率提升了5倍。

 

使用场景:

Redis的Pub Sub功能(或许是暂时)不支持持久化,意思就是消息在管道中是即发即失的,Subscriber端一收到消息,消息即从管道中删除。所以如果是对消息的准确性要求比较高或者是有持久化的需求,Redis就不是那么合适了,期待以后的版本加入持久化功能。
一个Publisher,多个Subscriber:
  如下图所示,可以作为消息队列或者消息管道。
  主要应用:通知、公告。

多个Publisher,一个Subscriber:
可以将PubSub做成独立的HTTP接口,各应用程序作为Publisher向Channel中发送消息,Subscriber端收到消息后执行相应的业务逻辑,比如写数据库,显示等等。
  主要应用:排行榜、投票、计数。

多个Publisher,多个Subscriber
图就不上了,故名思议,就是可以向不同的Channel中发送消息,由不同的Subscriber接收。
主要应用:群聊、聊天。

 

指令:

get/set就是插数据取数据(key----value对应着来):
setnx就是插入数据看看是否存在相同的key值,如果存在则不执行返回0,如果不存在则执行返回1:
append更是简单了,就是平时用的追加字符:
incr/decr/incrby/decrby就是自加自减的意思后面的incrby/decrby加入了步长,还有就是如果没有key值的话,它也可以操作:

mget/mset就是批量的插入取出。

lists链表结构,主要的功能就是pop/push,其中key作为链表的名字来用了。还有主要的就是(lr)pop/()lrpush就决定了它能够左(右)插入右(左)取出,即可做队列又可做堆栈来用。它还有一个奇怪的地方在于它的阻塞机制,b(lr)pop,b(lr)push

 

1)连接操作命令
    quit:关闭连接(connection)
    auth:简单密码认证
    help cmd: 查看cmd帮助,例如:help quit
    
    2)持久化
    save:将数据同步保存到磁盘
    bgsave:将数据异步保存到磁盘
    lastsave:返回上次成功将数据保存到磁盘的Unix时戳
    shundown:将数据同步保存到磁盘,然后关闭服务
    
    3)远程服务控制
    info:提供服务器的信息和统计
    monitor:实时转储收到的请求
    slaveof:改变复制策略设置
    config:在运行时配置Redis服务器
    

实际使用后续所有命令 不带()
    4)对value操作的命令
    exists(key):确认一个key是否存在
    del(key):删除一个key
    type(key):返回值的类型
    keys(pattern):返回满足给定pattern的所有key
    randomkey:随机返回key空间的一个
    keyrename(oldname, newname):重命名key
    dbsize:返回当前数据库中key的数目
    expire:设定一个key的活动时间(s)
    ttl:获得一个key的活动时间
    select(index):按索引查询
    move(key, dbindex):移动当前数据库中的key到dbindex数据库
    flushdb:删除当前选择数据库中的所有key
    flushall:删除所有数据库中的所有key
    
    5)String
    set(key, value):给数据库中名称为key的string赋予值value
    get(key):返回数据库中名称为key的string的value
    getset(key, value):给名称为key的string赋予上一次的value
    mget(key1, key2,…, key N):返回库中多个string的value
    setnx(key, value):添加string,名称为key,值为value
    setex(key, time, value):向库中添加string,设定过期时间time
    mset(key N, value N):批量设置多个string的值
    msetnx(key N, value N):如果所有名称为key i的string都不存在
    incr(key):名称为key的string增1操作
    incrby(key, integer):名称为key的string增加integer
    decr(key):名称为key的string减1操作
    decrby(key, integer):名称为key的string减少integer
    append(key, value):名称为key的string的值附加value
    substr(key, start, end):返回名称为key的string的value的子串
    
    6)List
    rpush(key, value):在名称为key的list尾添加一个值为value的元素
    lpush(key, value):在名称为key的list头添加一个值为value的 元素
    llen(key):返回名称为key的list的长度
    lrange(key, start, end):返回名称为key的list中start至end之间的元素
    ltrim(key, start, end):截取名称为key的list
    lindex(key, index):返回名称为key的list中index位置的元素
    lset(key, index, value):给名称为key的list中index位置的元素赋值
    lrem(key, count, value):删除count个key的list中值为value的元素
    lpop(key):返回并删除名称为key的list中的首元素
    rpop(key):返回并删除名称为key的list中的尾元素
    blpop(key1, key2,… key N, timeout):lpop命令的block版本。
    brpop(key1, key2,… key N, timeout):rpop的block版本。
    rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,

              并将该元素添加到名称为dstkey的list的头部
    
    7)Set
    sadd(key, member):向名称为key的set中添加元素member
    srem(key, member) :删除名称为key的set中的元素member
    spop(key) :随机返回并删除名称为key的set中一个元素
    smove(srckey, dstkey, member) :移到集合元素
    scard(key) :返回名称为key的set的基数
    sismember(key, member) :member是否是名称为key的set的元素
    sinter(key1, key2,…key N) :求交集
    sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合
    sunion(key1, (keys)) :求并集
    sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合
    sdiff(key1, (keys)) :求差集
    sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合
    smembers(key) :返回名称为key的set的所有元素
    srandmember(key) :随机返回名称为key的set的一个元素
    
    8)Hash
    hset(key, field, value):向名称为key的hash中添加元素field
    hget(key, field):返回名称为key的hash中field对应的value
    hmget(key, (fields)):返回名称为key的hash中field i对应的value
    hmset(key, (fields)):向名称为key的hash中添加元素field
    hincrby(key, field, integer):将名称为key的hash中field的value增加integer
    hexists(key, field):名称为key的hash中是否存在键为field的域
    hdel(key, field):删除名称为key的hash中键为field的域
    hlen(key):返回名称为key的hash中元素个数
    hkeys(key):返回名称为key的hash中所有键
    hvals(key):返回名称为key的hash中所有键对应的value
    hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value

分享到:
评论

相关推荐

    redis最全资料整理

    以下是对Redis的一些核心知识点的详细介绍: 1. **数据类型** Redis支持五大数据类型:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。字符串是最基础的类型,可存储任意长度的字符串...

    cpp-通过思维导图整理redis的重要知识点

    在压缩包文件"redis-mindmap-master"中,可能包含了一个关于Redis知识的思维导图,涵盖了以下几个关键部分: 1. **基本概念**:Redis的安装、启动与配置,以及基本命令操作。 2. **数据结构**:字符串、哈希、列表...

    《Redis设计与实现》知识图谱

    对《Redis设计与实现》一书中的知识点进行全面的整理,让大家对Redis的整体架构以及其知识点有更为全面的认知

    Redis知识点核心笔记整理.xmind

    平时学习Redis整理的笔记资料做成的Xmind文件,这个笔记不仅对复习Redis应付面试还是如何学习Redis都有详细整理,里面还有很多每个知识点的视频链接讲解,希望对有需要的朋友起到一些帮助!

    Redis安装整理(window平台和Linux平台)

    Redis是一种高性能的键值数据库,常用于数据缓存、消息队列和数据库持久化等多个场景。本文将详细介绍在Windows和Linux平台上...了解并掌握这些基础知识,能帮助你更好地管理和利用Redis作为高效的数据存储解决方案。

    redis汇总整理+linux安装包-windows免安包.rar

    本压缩包包含Redis的相关整理资料以及Linux安装包和Windows免安装版本,旨在帮助用户全面了解和使用Redis。 一、Redis基本概念 Redis(Remote Dictionary Server)是开源的、基于键值对的数据存储系统,由Salvatore...

    Redis学习笔记整理

    ### Redis学习笔记整理 #### 一、Redis环境搭建 ##### 1.1 简介 Redis是一款开源的键值(Key-Value)存储系统,它不仅具备键值存储的功能,还可以作为数据结构服务器使用。其最大的特点在于支持多种数据结构如字符串...

    Redis文档整理

    对于想学习Redis的程序开发人员来说,了解基本的数据结构是阅读Redis教程前的必要知识。因为Redis不仅仅是一个简单的存储系统,它更是一个功能丰富的数据结构服务器,能够以高性能的方式执行各种数据操作。对于...

    redis面试相关问题整理(含答案)

    Redis 面试相关问题整理(含答案) Redis 作为一个高性能的 ...本文档内容涵盖了 Redis 的基本概念、优缺点、为什么要用 Redis、Redis 数据类型等方面的知识点,旨在帮助读者更好地理解 Redis 的使用场景和优缺点。

    个人整理的redis学习资料汇总

    8. **redis使用入门.ppt**: 这份PPT可能是针对初学者的快速教程,通过幻灯片的形式介绍Redis的基础知识和常见用法,便于快速上手。 9. **redis-2.4.8**: 这可能是Redis的一个历史版本源码,用于对比不同版本间的...

    Redis实战中文版命令行整理

    下面将根据提供的文件内容,详细介绍Redis的相关知识点。 ### Key-Value存储系统简介 Key-Value存储系统是一种简单的存储系统,每个数据项都被存储为键值对的形式,其中键为唯一标识,值为数据本身。早期的Key-...

    Redis校招面经知识整理 133条目!很全!(xmind思维导图格式,便于记忆和理解)

    Redis校招知识整理 133条目!很全!(xmind思维导图格式,便于记忆和理解) 笔者在准备校招时自己整理的,几轮面试下来,面试官所问的问题都逃不过里面的内容!!! 我还分享过Mysql等后端校招面经 模块的笔记整理,...

    2021最新Redis 6教程实战.txt打包整理.zip

    这个“2021最新Redis 6教程实战.txt打包整理.zip”压缩包文件很可能是为了帮助学习者深入理解和掌握Redis 6的新功能和最佳实践。 Redis是一种流行的开源、高性能的键值存储系统,常被用作数据库、缓存和消息代理。...

    redis学习笔记详细整理手册

    本手册详细整理了Redis的学习过程,包括基础概念、安装部署和实战应用。 一、Redis基础知识 Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它的数据模型包括字符...

    mac版本的redis及redis-desktop-manager

    Redis是一种高性能的键值数据库,常用于数据缓存、消息队列等场景。在Mac操作系统上部署和管理Redis,可以通过以下步骤进行: 1. **安装Redis** ...通过了解和实践上述知识,你可以更好地理解和利用Redis的功能。

    redis中文文档整理

    ### Redis中文文档整理知识点 #### 一、概述 Redis(Remote Dictionary Server)是一款开源的、高性能的键值存储系统,支持多种数据结构如字符串、哈希、列表、集合及有序集合等。它常用于实现缓存、消息队列以及...

    typora:redis笔记

    这表明作者可能已经系统地整理了Redis的相关知识,涵盖了基础概念到高级特性的应用。 从标签来看,“redis 缓存 中间件”,我们可以预期笔记内容会涵盖以下几个方面: 1. Redis作为缓存:Redis能有效地缓解数据库...

    Redis配置及使用资料整理

    ### Redis配置及使用知识点梳理 #### 一、Redis环境搭建 **1.1 Redis简介** Redis是一个开源的键值(Key-Value)存储系统,它不仅仅可以用作简单的键值数据库,还可以作为数据结构服务器使用,提供了丰富的数据结构...

    redis学习脑图mmap.zip

    9. .mmap文件:脑图文件redis.mmap可能使用了MindMap或类似软件创建,这是一种图形化工具,用于整理思维、组织信息,便于理解和记忆复杂知识体系。.mmap文件通常可以直接打开查看,帮助学习者以视觉化的方式理解...

    redis压缩包.zip

    这个压缩包"redis压缩包.zip"包含了一份关于Redis深入探索的资料,以及可能的辅助工具TeamViewer,让我们逐一解析其中的知识点。 首先,"Redis深度历险:核心原理和应用实践"这本电子书,可能是由作者精心整理的一...

Global site tag (gtag.js) - Google Analytics