1 设置一个key
2 查询 一个key
3 移动一个key到指定数据库
4 删除一个key
5 设置一个key的生命周期 expire keyName
6 设置key永久有效
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
String(字符串)
string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
常用命令:set、get、decr、incr、mget等。
注意:一个键最大能存储512MB。
Hash(哈希)
Redis hash 是一个键值(key=>value)对集合;是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
每个 hash 可以存储 232 -1 键值对(40多亿)。
常用命令:hget、hset、hgetall等。
应用场景:存储一些结构化的数据,比如用户的昵称、年龄、性别、积分等,存储一个用户信息对象数据。
List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
list类型经常会被用于消息队列的服务,以完成多程序之间的消息交换。
常用命令:lpush、rpush、lpop、rpop、lrange等。
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
Set(集合)
Redis的Set是string类型的无序集合。和列表一样,在执行插入和删除和判断是否存在某元素时,效率是很高的。集合最大的优势在于可以进行交集并集差集操作。Set可包含的最大元素数量是4294967295。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
应用场景:
1、利用交集求共同好友。
2、利用唯一性,可以统计访问网站的所有独立IP。
3、好友推荐的时候根据tag求交集,大于某个threshold(临界值的)就可以推荐。
常用命令:sadd、spop、smembers、sunion等。
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
sorted set是插入有序的,即自动排序。
常用命令:zadd、zrange、zrem、zcard等。
当你需要一个有序的并且不重复的集合列表时,那么可以选择sorted set数据结构。
应用举例:
(1)例如存储全班同学的成绩,其集合value可以是同学的学号,而score就可以是成绩。
(2)排行榜应用,根据得分列出topN的用户等。
相关推荐
本项目主要探讨的是如何将Gin与MySQL数据库和Redis缓存系统进行整合,构建一个通用的后端脚手架。 首先,我们需要了解Gin框架。Gin基于Martini设计,但性能更优,因为它使用了httprouter,这是一个高性能的路由树,...
在这篇文章中,我们将详细介绍Redis通用指令1,包括key通用操作、数据库通用操作等。 key通用操作 key是一种字符串,通过key可以获取Redis中保存的数据。因此,对于key的操作是非常重要的。下面是key通用操作的...
本文将深入探讨如何使用Java与Redis进行各种类型的操作,并基于Maven项目管理来构建我们的示例代码。 首先,为了在Java项目中使用Redis,我们需要引入Jedis库,这是一个流行的Java Redis客户端。在Maven项目的`pom....
1. **连接管理**:ServiceStack.Redis提供了一个`IRedisClient`接口,它是所有Redis操作的基础。你可以通过`RedisManagerPool`或`RedisClient`类建立连接。`RedisManagerPool`是线程安全的连接池,适用于多线程环境...
$redisClass = new Redis调用操作类(); $redisClass->connect(); // 连接Redis $redisClass->set('myKey', 'myValue'); // 设置键值 $value = $redisClass->get('myKey'); // 获取键值 ``` 这样的设计使得代码更加...
一个比较全的Redis PHP操作类库,为每个数据库建立一个连接,如果连接超时,将会重新建立一个连接,如果是一个字符串,将其认为是数据库的ID号。以简化写法。给当前集合添加一个元素,如果value已经存在,会更新...
在C++中操作Redis,可以充分利用C++的灵活性和Redis的高效性,为应用程序提供强大的数据支持。 首先,`rediscommand.cpp`可能包含了C++与Redis交互的命令实现。在C++中操作Redis,通常会使用一个库来简化与Redis...
本文将深入探讨如何对StackExchange.Redis进行通用封装,以便在实际项目中更加方便地使用。 首先,`ConnectionMultiplexer`是StackExchange.Redis的核心类,它负责建立和管理到Redis服务器的连接。由于创建和销毁`...
.NET 和 C# 用于操作 Redis 的案例主要涉及的是利用 Redis 这种高性能的键值存储系统来提升应用程序的数据处理效率。Redis 是一个开源的、基于内存的、支持网络的、可持久化的键值数据库,广泛应用于缓存、消息队列...
redis使用如何获取之中值信息,redis使用如何获取之中值信息
把redis几种存储的操作分别封装在一个类中;分别增加了单例以及共享控制;同时为服务端程序增加了配置及自动关闭策略,都很简单,共享出来希望能够为大家提供帮助;RedisClietProxy为主要类,创建该类实例,使用里面...
`redis.command` 方法可能是一个通用的接口,用于执行任何 Redis 命令,并将结果转换为适当的数据类型。 对于集合型操作,如列表(List)、集合(Set)、有序集合(Sorted Set)和哈希表(Hash),`redis_helper` ...
### 通用Redis命令详解 #### 一、Redis链表(List) **Redis链表**作为Redis提供的数据结构之一,在实现上采用双向链表的形式。这种结构不仅支持链表头部及尾部的操作,还允许在O(1)的时间复杂度内完成这些操作。...
它支持多种数据结构,如字符串、哈希、列表、集合、有序集合,这使得Redis在处理实时数据操作时表现出色。在本文中,我们将详细介绍如何安装Redis以及配置文件的相关设置。 首先,安装Redis的过程通常分为以下几个...
本工程名为"dx-common-redis",意在提供一个通用的Spring与Redis的整合方案,开发者可以在自己的Maven项目中引入这个工程作为依赖,以便快速实现对Redis的操作。要使用这个工程,你需要在你的Maven项目的pom.xml文件...
Keys 的通用操作 Redis 中的 Keys 支持多种操作,包括设置、获取、删除、检查存在等。 Redis 的持久化 Redis 的持久化支持多种方式,包括 RDB 和 AOF 两种模式。 总结 Redis 是一个功能强大、性能高效的 NoSQL ...
在Java环境中与Redis进行交互,我们通常会使用Jedis库,这是一个Java客户端,提供了丰富的API来操作Redis服务器。本压缩包包含了两个关键的Java库文件:jedis-2.9.0.jar和commons-pool-1.6.jar。 Jedis是Java开发...
9. **RedisTemplate与StringRedisTemplate**:Spring Boot提供了这两个模板类来操作Redis,RedisTemplate是通用版本,而StringRedisTemplate专为处理字符串设计,简化了编码工作。 10. **Redis缓存**:SpringBoot...
Spring Data Redis是Spring Framework的一个模块,它提供了一种简单的方式来连接和操作Redis数据库。在将Spring MVC与Redis进行整合时,通常会涉及到以下关键知识点: 1. **Spring Data Redis**:这是Spring提供的...