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的一些核心知识点的详细介绍: 1. **数据类型** Redis支持五大数据类型:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。字符串是最基础的类型,可存储任意长度的字符串...
在压缩包文件"redis-mindmap-master"中,可能包含了一个关于Redis知识的思维导图,涵盖了以下几个关键部分: 1. **基本概念**:Redis的安装、启动与配置,以及基本命令操作。 2. **数据结构**:字符串、哈希、列表...
对《Redis设计与实现》一书中的知识点进行全面的整理,让大家对Redis的整体架构以及其知识点有更为全面的认知
平时学习Redis整理的笔记资料做成的Xmind文件,这个笔记不仅对复习Redis应付面试还是如何学习Redis都有详细整理,里面还有很多每个知识点的视频链接讲解,希望对有需要的朋友起到一些帮助!
Redis是一种高性能的键值数据库,常用于数据缓存、消息队列和数据库持久化等多个场景。本文将详细介绍在Windows和Linux平台上...了解并掌握这些基础知识,能帮助你更好地管理和利用Redis作为高效的数据存储解决方案。
本压缩包包含Redis的相关整理资料以及Linux安装包和Windows免安装版本,旨在帮助用户全面了解和使用Redis。 一、Redis基本概念 Redis(Remote Dictionary Server)是开源的、基于键值对的数据存储系统,由Salvatore...
### Redis学习笔记整理 #### 一、Redis环境搭建 ##### 1.1 简介 Redis是一款开源的键值(Key-Value)存储系统,它不仅具备键值存储的功能,还可以作为数据结构服务器使用。其最大的特点在于支持多种数据结构如字符串...
对于想学习Redis的程序开发人员来说,了解基本的数据结构是阅读Redis教程前的必要知识。因为Redis不仅仅是一个简单的存储系统,它更是一个功能丰富的数据结构服务器,能够以高性能的方式执行各种数据操作。对于...
Redis 面试相关问题整理(含答案) Redis 作为一个高性能的 ...本文档内容涵盖了 Redis 的基本概念、优缺点、为什么要用 Redis、Redis 数据类型等方面的知识点,旨在帮助读者更好地理解 Redis 的使用场景和优缺点。
8. **redis使用入门.ppt**: 这份PPT可能是针对初学者的快速教程,通过幻灯片的形式介绍Redis的基础知识和常见用法,便于快速上手。 9. **redis-2.4.8**: 这可能是Redis的一个历史版本源码,用于对比不同版本间的...
下面将根据提供的文件内容,详细介绍Redis的相关知识点。 ### Key-Value存储系统简介 Key-Value存储系统是一种简单的存储系统,每个数据项都被存储为键值对的形式,其中键为唯一标识,值为数据本身。早期的Key-...
Redis校招知识整理 133条目!很全!(xmind思维导图格式,便于记忆和理解) 笔者在准备校招时自己整理的,几轮面试下来,面试官所问的问题都逃不过里面的内容!!! 我还分享过Mysql等后端校招面经 模块的笔记整理,...
这个“2021最新Redis 6教程实战.txt打包整理.zip”压缩包文件很可能是为了帮助学习者深入理解和掌握Redis 6的新功能和最佳实践。 Redis是一种流行的开源、高性能的键值存储系统,常被用作数据库、缓存和消息代理。...
本手册详细整理了Redis的学习过程,包括基础概念、安装部署和实战应用。 一、Redis基础知识 Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它的数据模型包括字符...
Redis是一种高性能的键值数据库,常用于数据缓存、消息队列等场景。在Mac操作系统上部署和管理Redis,可以通过以下步骤进行: 1. **安装Redis** ...通过了解和实践上述知识,你可以更好地理解和利用Redis的功能。
### Redis中文文档整理知识点 #### 一、概述 Redis(Remote Dictionary Server)是一款开源的、高性能的键值存储系统,支持多种数据结构如字符串、哈希、列表、集合及有序集合等。它常用于实现缓存、消息队列以及...
这表明作者可能已经系统地整理了Redis的相关知识,涵盖了基础概念到高级特性的应用。 从标签来看,“redis 缓存 中间件”,我们可以预期笔记内容会涵盖以下几个方面: 1. Redis作为缓存:Redis能有效地缓解数据库...
### Redis配置及使用知识点梳理 #### 一、Redis环境搭建 **1.1 Redis简介** Redis是一个开源的键值(Key-Value)存储系统,它不仅仅可以用作简单的键值数据库,还可以作为数据结构服务器使用,提供了丰富的数据结构...
9. .mmap文件:脑图文件redis.mmap可能使用了MindMap或类似软件创建,这是一种图形化工具,用于整理思维、组织信息,便于理解和记忆复杂知识体系。.mmap文件通常可以直接打开查看,帮助学习者以视觉化的方式理解...
这个压缩包"redis压缩包.zip"包含了一份关于Redis深入探索的资料,以及可能的辅助工具TeamViewer,让我们逐一解析其中的知识点。 首先,"Redis深度历险:核心原理和应用实践"这本电子书,可能是由作者精心整理的一...