Redis 2.8 数据类型

1  Redis数据类型

1.1   String

Key‘[{"CityId":18,"CityName":"xian","ProvinceId":27,"CityOrder":1},{"CityId":53,"CityName":"guangzhou","ProvinceId":27,"CityOrder":1}]‘

最为基础的数据存储类型。可以存储字符串和二进制数据,在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 ...]

1.2   List

List类型是按照插入顺序排序的字符串链表(相当于java的linkedlist)。可以在链表的两头插入或删除元素,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


从尾部弹出值


RPOP key


RPOPLPUSH


从一个集合尾部弹出值插入到里一个集合的头部


RPOPLPUSH source  destination

1.3   Hash

Hashes类型可以看成具有String Key和String Value的map容器(就相当于java中的hashmap类型)。非常适合于存储值对象的信息。如Username、Password和Age等。


命令


描述


例子


HSET


给key中filed字段赋值


HSET key field value


HGET


获取key中filed的值


HGET key field


HEXISTS


判断filed是否存在 0 、1


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 ...]

1.4   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 ...]

1.5   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

1.6   对于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

1.7   消息发布、订阅

什么是消息:qq聊天、发个邮件、手机短信都可以称为消息

什么是发布:A发一个消息给B,A就是在发布消

什么是订阅:B要想接收到A的消息需要添加A为好友,添加好友就是订阅

场景:常用于构建类似在线聊天应用,网站内部消息系统

命令:

发布频道消息:publish news ‘today issunshine‘

订阅频道:subscribenews

批量订阅:psubscribenew*

时间: 2024-10-26 01:34:38

Redis 2.8 数据类型的相关文章

redis的五大数据类型以及与 key 关键字相关的常用操作命令

1.redis的五大数据类型: 先来看看redis官方网上文档 的介绍: 这里简单地说,就是redis不是一个普通的 key-value 存储,而是一个数据结构服务器,支持各种不同 类型的值,这意味着不仅仅是传统的键值对存储,它可以关联更多的复杂的数据结构. 简单地说一说它的数据结构: i: string(字符串) string是redis最基本的类型,可以理解为与 Memcached 一模一样,一个 key 值对应一个 value值. 需要注意,string类型是二进制安全的,可以对应任意数据

[redis]redis五种数据类型命令汇总整理

redis所有命令参考中文版 键key 命令 时间复杂度 命令描述 返回值 del key O(N) 在key存在时删除key 被移除key的数量 dump key O(N) 序列话给定key,并返回被序列化的值 exists key O(1) 检查给定key是否存在 若key存在,返回1,否则返回0. expire key seconds O(1) 为给定key设置过期时间 设置成功返回1. 当key不存在或者不能为key设置生存时间时(比如在低于2.1.3中你尝试更新key的生存时间),返回

Redis之五种数据类型的简单增删改查

开心一笑 乌龟受伤.让蜗牛去买药.过了2个小时.蜗牛还没回来.乌龟急了骂道:他妈的再不回来老子就死了!这时门外传来了蜗牛的声音:你他妈再说老子不去了! 提出问题 Redis五种数据类型的简单增删改查命令??? 解决问题 假设你已经安装Redis服务器: 假设你已经打开Redis cli命令行工具: 假设你对Redis有所了解: Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" O

redis 五种数据类型

前言 前面学会了单机, 学会了集群, 但是redis咋用啊? 或者说, redis支持哪些数据类型呢? 常用的有五种: String , Hash, List, Set, zset(SortedSet) 一.String String 类型, 在前面也是使用过的. 直接来看一下 可以使用del name来删除缓存 二.List push指令: push分两个, 一个从左边push, 一个从右边push. 但是这个左右, 是对准备push的值而言的. 而不是针对将要push的数组来说的. pop指

003 redis的基本数据类型

一 概述 之前介绍redis的时候就说到,我们使用redis的时候最重要的就是使用redis提供的数据类型实现我们的数据结构, 总的来说,就是实现符合业务逻辑的数据结构,以此来模拟关系型数据库的行为. 使用redis的性能来弥补关系型数据库性能不足的缺陷. 因此,redis的基本数据结构就是最为基本的了. 二 .基本数据类型的简介 [1] redis的键是一个字符串类型的. 这个决定了redis的使用过程之中,key的设置就是一个需要考虑的问题. 更好的key的设计会帮助我们实现更加巧妙的数据结

redis五种数据类型的使用场景

string 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一段内容 设置及获取字符串的某一位(bit) 批量设置一系列字符串的内容 应用场景: String是最常用的一种数据类型,普通的key/value存储都可以归为此类,value其实不仅是String, 也可以是数字:比如想知道什么时候封锁一个IP地址(访问超过几次).INCRBY命令让这些变得很容易,

redis中各种数据类型的常用操作方法汇总

一.Redis的五大数据类型 1.String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value.string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 .string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M 2.Hash(哈希,类似java里的Map) Redis hash 是一个键值对集合.Redis hash是一个s

Redis的基本数据类型

Redis的基本数据类型 1.String类型 它是二进制安全的,可以存储图片等数据.不会因为特殊字符导致字符串结尾,redis是C语言书写的,C的字符串有这种特点.底层是SDS(simple dynamic string),字符串是动态的,类似arraylist. 底层:SDS(simple dynamic string) 用途:缓存用户信息的一个字段 常用命令:set.get.getset key value(先获取值然后再设置).incr.decr(自增和自减).incrby key va

redis支持哪些数据类型?redis命令大全

一.redis支持的数据类型 1)String 常用命令:set/get/decr/incr/mget等: 应用场景:String是最常用的一种数据类型,普通的key/value存储都可以归为此类: 实现方式:String在redis内部存储默认就是一个字符串,被redisObject所引用,当遇到incr.decr等操作时会转成数值型进行计算,此时redisObject的encoding字段为int. 2)Hash 常用命令:hget/hset/hgetall等 应用场景:我们要存储一个用户信

Java 操作 Redis 五种数据类型

项目添加依赖 <!-- Redis 依赖 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> Java 怎么连接 Redis //连接 Redis @Test public void initConn01(){ S