Redis的定义
Redis是开源的使用C语言编写的Key/Value存储系统(nosql数据库)属于非关系型数据库
1:开源的;
2:C语言编写的;
3:key/value(重点)
NoSQL(非关系型数据库)是什么?
一、关系型数据库与非关系型数据比较
1.Mysql Oracle属于关系型数据库:表结构存储
2.Nosql:key/value
二、非关系型数据库的应用场景
电商、互联网企业
三、常见NoSQL
1.mongodb(文档型数据库)支持的数据类型:bson
2.redis(内存数据库)支持的数据类型:string、set、list、hash、sorted-set
3.hbase(海量的分布式nosql数据库--hadoop生态体系)
Redis的特性
一、缓存
什么是缓存:把硬盘上的数据存储在内存上提供快速的读写操作。
常见的缓存工具?
memcached
OScache
Redis(它还能持久化!!!有丰富的数据类型)
二、丰富的数据类型
Redis是key/value存储形式,其中key的类型永远是string和二进制、而value的类型非常丰富,例如:string、list、set、hash(map)等等。
三、持久化
持久化就是把数据保存到硬盘上。(例如:文件IO)
什么是Redis数据类型
Redis数据类型:Redis使用key/value格式存储数据,其中key的类型永远是string,而value的类型非常丰富;
常用的数据类型:
string:存储字符串
list:是一个集合,可以在头部或者尾部操作数据
hash(Map):采用键值对存储
set:无序不可重复的集合
SortedSet:使用score来排序的集合
string类型
最为基础的数据存储类型。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。
命令 |
描述 |
例子 |
Set |
赋值 |
SET key value |
Get |
获取值 |
GET key |
APPEND |
追加字符串 |
APPEND key value |
DECR |
减少值 |
DECR key |
INCR |
增加值 |
INCR key |
DECRBY |
设置减少数值的步长 |
DECRBY key decrement |
INCRBY |
设置增加数值的步长 |
INCRBY key increment |
GETSET |
先获取值再赋值 |
GETSET key value |
STRLEN |
返回key的长度 |
STRLEN key |
SETEX |
设置key在服务器中存在的时间 |
SETEX key seconds value |
SETNX |
Key不存在设置值,否则不做操作 |
SETNX key value |
SETRANGE |
字符串替换 |
SETRANGE key start "value" |
GETRANGE |
截取字符串 |
GETRANGE key start end |
SETBIT |
设置二进制的值 |
SETBIT key offset value |
GETBIT |
获取二进制的值 |
GETBIT key offset |
MGET |
返回多个key的值 |
MGET key [key ...] |
MSET |
设置多个key、value |
MSET key value [key value ...] |
MSETNX |
Key不存在设置多个key、value值,否则不做操作 |
MSETNX key value [key value ...]
|
list类型
List类型是按照插入顺序排序的字符串链表。可以在链表的两头插入或删除元素,List中可以包含的最大元素数量是4294967295。
命令 |
描述 |
例子 |
LPUSH |
在list头部添加多个值 |
LPUSH key value [value ...] |
LPUSHX |
Key存在则添加值,否则不做操作 |
LPUSHX key value |
LRANGE |
遍历list中key数据 |
LRANGE key start stop |
LPOP |
从头部弹出key中的值 |
LPOP key |
LLEN |
返回key的长度 |
LLEN key |
LREM |
删除前面几个值等于某值得元素 |
LREM key count value |
LSET |
给下标赋值 |
LSET key index value |
LINDEX |
返回下标中的值 |
LINDEX key index |
LTRIM |
截取list中的值 |
LTRIM key start stop |
LINSERT |
在某个值的前面或者后面插入值 |
LINSERT key BEFORE|AFTER pivot value |
RPUSH |
在list尾部添加多个值 |
RPUSH key value [value ...] |
RPUSHX |
在list尾部添加单个值 |
RPUSHX key value |
RPOP key |
从尾部弹出值 |
RPOP key |
RPOPLPUSH |
从一个集合尾部弹出值插入到里一个集合的头部 |
RPOPLPUSH source destination |
hash类型
Hashes类型可以看成具有String Key和String Value的map容器。非常适合于存储值对象的信息。如Username、Password和Age等。
命令 |
描述 |
例子 |
HSET |
给key中filed字段赋值 |
HSET key field value |
HGET |
获取key中filed的值 |
HGET key field |
HEXISTS |
判断filed是否存在 |
HEXISTS key field |
HLEN |
获取key 的长度 |
HLEN key |
HDEL |
删除file字段 |
HDEL key field [field ...] |
HSETNX |
如果filed不存赋值否则不做操作 |
HSETNX key field value |
HINCRBY |
给filed增加步长 |
HINCRBY key field increment |
HGETALL |
获取所有的filed和value |
HGETALL key |
HKEYS |
获取key |
HKEYS key |
HVALS |
获取value |
HVALS key |
HMGET |
获取所有filed字段的值 |
HMGET key field [field ...] |
HMSET |
设置多个filed字段value |
HMSET key field value [field value ...] |
set类型
Set类型看作为没有排序的字符集合,Set集合中不允许出现重复的元素,redis可以在服务器端完成多个Sets之间的计算操作,
如unions、intersections和differences。
这些操作均在服务端完成,因此效率极高,而且也节省了大量的网络IO开销
命令 |
描述 |
例子 |
SADD |
添加值 |
SADD key member [member ...] |
SMEMBERS |
遍历集合 |
SMEMBERS key |
SCARD |
获取key的成员数量 |
SCARD key |
SISMEMBER |
判断成员是否存在 |
SISMEMBER key member |
Spop |
随机弹出值 |
Spop key |
SREM |
删除指定的成员 |
SREM key member [member ...] |
SRANDMEMBER |
随机返回成员,不删除原值 |
SRANDMEMBER key |
SMOVE |
移动一个集合的成员到另一个集合 |
SMOVE source destination member |
SDIFF |
求集合差集 |
SDIFF key [key ...] |
SDIFFSTORE |
集合中的差集存储到新集合中 |
SDIFFSTORE destination key [key ...] |
SINTER |
求集合交集 |
SINTER key [key ...] |
SINTERSTORE |
将集合交集存储到新集合 |
SINTERSTORE destination key [key ...] |
SUNION |
求集合并集 |
SUNION key [key ...] |
SUNIONSTORE |
将集合的并集存储到新集合 |
SUNIONSTORE destination key [key ...] |
sortedset类型
不允许出现重复的元素,每一个成员都会有一个分数(score)与之关联,用分数来进行排序,分数是可以重复的
命令 |
描述 |
例子 |
ZADD |
添加排序成员 |
ZADD key score member [score] [member] |
ZCARD |
获取成员数量 |
ZCARD key |
ZCOUNT |
获取分数在min和max之间成员有多少个 |
ZCOUNT key min max |
ZINCRBY |
增加指定成员的分数 |
ZINCRBY key increment member |
ZRANGE |
遍历成员以及分数 |
ZRANGE key start stop [WITHSCORES] |
ZRANGEBYSCORE |
返回分数在min和max之间的成员和分数 |
ZRANGEBYSCORE key min max [WITHSCORES] |
ZRANK |
返回成员的下标 |
ZRANK key member |
ZREM |
删除指定成员 |
ZREM key member [member ...] |
ZREVRANGE |
遍历成员以及分数从大到小 |
ZREVRANGE key start stop [WITHSCORES] |
ZREVRANK |
返回成员下标顺序从大到小 |
ZREVRANK key member |
ZSCORE |
获取指定成员的分数 |
ZSCORE key member |
ZREVRANGEBYSCORE |
获取成员以及分数按照从高到低 |
ZREVRANGEBYSCORE key max min [WITHSCORES] |
ZREMRANGEBYRANK |
删除下标之间的数据 |
ZREMRANGEBYRANK key start stop |
ZREMRANGEBYSCORE |
删除分数在min和max中的成员 |
ZREMRANGEBYSCORE key min max |
redis对于key的应用
使用对key的操作,通常可以用来维护数据
命令 |
描述 |
例子 |
KEYS |
获取所有的key |
KEYS pattern |
Del |
删除指定的key |
DEL key [key ...] |
EXISTS |
判断key是否存在 |
EXISTS key |
MOVE |
移动一个key到另一个库中 |
MOVE key db |
RENAME |
给key从新命名 |
RENAME key newkey |
RENAMENX |
修改key的名字 |
RENAMENX key newkey |
PERSIST |
持久化key |
PERSIST key |
EXPIRE |
设置key存活时间 |
EXPIRE key seconds |
EXPIREAT |
设置key存活时间(年月日) |
EXPIREAT key timestamp |
TTL |
实时查看key存活时间 |
TTL key |
RANDOMKEY |
随机返回一个key |
RANDOMKEY |
TYPE |
查看key的中value数据类型 |
TYPE key |
SELECT |
进入指定库 |
SELECT NUM |
相关推荐
Redis基础教程及开发案例及解析Redis基础教程及开发案例及解析Redis基础教程及开发案例及解析Redis基础教程及开发案例及解析Redis基础教程及开发案例及解析Redis基础教程及开发案例及解析Redis基础教程及开发案例及...
### Redis安装和使用教程 #### 一、Redis简介 Redis是一种功能强大的开源键值(Key-Value)数据库系统,它不仅支持内存数据存储还提供了数据持久化的选项。这使得Redis成为了一个既可以作为缓存又可以作为数据库使用...
本教程将引导初学者掌握C#中Redis的基本使用。 首先,安装StackExchange.Redis库。通过NuGet包管理器,搜索并安装"StackExchange.Redis",它提供了丰富的API来操作Redis。 1. 连接Redis服务器: 使用`...
介绍了redis的安装方法,概念,以及python中redis的使用方法
### Redis安装及使用详解 #### 一、Redis简介 Redis是一种高性能的键值对存储系统,采用内存存储机制,能够实现快速的数据访问速度。...掌握这些基础知识有助于开发者更好地利用Redis来解决实际问题。
在Windows环境下安装Redis是一项简单但重要的任务,尤其对于开发者来说,因为Redis是一个高效的数据存储和缓存系统。本文将提供一个详细的步骤指南,帮助你...记住,理解Redis的基础知识和最佳实践是充分利用它的关键。
### Redis入门教程精要 #### 1. Redis 是什么? Redis 是一款开源的、使用 C 语言编写的、支持网络交互的 Key-Value 数据库。它不仅能够将数据存储在内存中实现高速读写,同时也提供了多种持久化机制来确保数据的...
安装完毕后,会有几个基础工具文件,如性能测试工具redis-benchmark、日志文件检测工具redis-check-aof、快照文件检测工具redis-check-dump、客户端redis-cli和服务端redis-server。通过命令行工具redis-cli可以与...
1. **Redis基础概念介绍**:包括Redis的历史背景、特点、优势以及应用场景等。 2. **环境搭建与配置**:详细介绍如何安装Redis服务器及客户端工具,并配置相关参数。 3. **数据类型详解**:对Redis支持的各种数据...
本教程将引导初学者全面掌握Redis的开发与应用,通过丰富的案例来深化理解。 首先,我们需要了解Redis的基本概念。Redis支持的数据结构包括字符串、哈希、列表、集合和有序集合,这些数据结构设计独特,使得Redis在...
### Redis 命令基础教程知识点总结 #### 一、Redis 概述 - **定义**: Redis 是 Remote Dictionary Server 的缩写,它是一款完全开源且免费的高性能 KV(Key-Value)分布式内存数据库。 - **特性**: - **基于内存...
本教程将深入探讨Redis的基础知识、核心特性和实际应用。 一、Redis简介 Redis作为一个内存数据存储,具有极快的数据读写速度,同时通过持久化机制保证数据在断电后仍能恢复。它的设计目标是提供低延迟的服务,并...
Redis 数据库入门教程 Redis 是一个开源的、使用 C 语言编写的、支持网络交互的、可基于内存也可持久化的 Key-Value 数据库。Redis 的官网地址是 redis.io。Vmware 在资助着 Redis 项目的开发和维护。 Redis 的...
redis学习的一些总结,其中包含一些简单操作,常用命令,java中使用redis,redis充当Mybatis的二级缓存等一些基础内容
Redis基础概念 Redis支持多种数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这些数据类型使得Redis能处理各种复杂的数据操作需求。 ### 2. Redis安装与启动 ...
- 高性能:Redis使用内存存储数据,读写速度极快。 - 数据持久化:支持RDB和AOF两种持久化方式,确保数据在系统崩溃后仍可恢复。 - 主从复制:支持多个从节点复制主节点数据,提高数据可用性和读取性能。 - 集群支持...
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库...《redis实战教程》从redis的基础数据结构,到redis的高可用,再到redis的常见问题。由浅入深的介绍了redis的实战教程。对学习redis有一定的帮助
【Redis基础知识】 Redis,全称为Remote Dictionary Server,是一款开源的、基于内存的、高性能的NoSQL数据库。它采用键值对(Key-Value)数据结构,同时也支持多种其他数据结构如列表(List)、集合(Set)、有序...