Redis中的数据类型

Redis一共分为五种基本数据类型:String,Hash,List,Set,ZSet

1.String类型

String类型是包含很多种类型的特殊类型,并且是二进制安全的,比如序列化的对象进行存储,比如一张图片进行二进制存储,比如一个简单的字符串,数值等等~

set和get方法:

设置值:set key value  取值:get key(说明 设置key多次会覆盖)  删除值:del key

使用setnx(not exist)

name如果不存在就进行设置,如果存在就不进行设置了,返回0

127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> setnx name lisi
(integer) 0
127.0.0.1:6379> 

使用setex(expired)

setex color 10 red设置color的有效期为10秒,10秒后返回nil(在Redis中nil表示空)

使用setrange替换字符串:

set email [email protected]

setrange email 10 ww (10表示从第几位开始替换,后面跟上替换的字符串,从0开始)

127.0.0.1:6379> set email 1048158229@qq.com
OK
127.0.0.1:6379> setrange email 10 ww
(integer) 17
127.0.0.1:6379> get email
"1048158229wwq.com"
127.0.0.1:6379> 

使用一次性设置多个和获取多个值得mset,mget方法

mset key1 value1 key2 value2 key3 value3

对应的mget key1 key2 key3

127.0.0.1:6379> mset name zhangsan age 20 sex 0
OK
127.0.0.1:6379> mget name age sex
1) "zhangsan"
2) "20"
3) "0"
127.0.0.1:6379> 

一次性设置和取值的getset

127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> getset name lisi
"zhangsan"
127.0.0.1:6379> 

返回旧值并设置新值

incr和decr方法:对某一个值进行递增和递减(incr/decr key)

incrby和decrby方法:对某个值进行指定长度的递增和递减(incrby/decrby key 步长)

append[name]方法:字符串追加方法(append key ‘str‘)

strlen[name]方法:获取字符串的长度(strlen key)

2.Hash类型

Hash类型是String类型的field和value的映射表,或者说一个String集合。它特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。

形如:hset myhash key value(含义是hset是hash集合,myhash是集合名字,key是字段名,value是其值),使用hget myhash key获取内容,也可以存储多个值。

hmset可以进行批量存储多个键值对,hmset myhash key1 value1 key2 value2,也可以使用hmget进行批量获取多个键值对。

同样也有hsetnx,和setnx大同小异。

hincrby和hdecrby集合递增和递减

hexists是否存在key,如果存在就返回,不存在就返回0

hlen返回hash集合里的所有的键数值

hdel删除指定hash的key

hkeys返回hash里的所有字段

hvals返回hash里的所有value

hgetall返回hash里所有的key和value

3.List类型

List类型是一个链表结构的集合,其主要功能是push,pop,获取元素等。更详细的说,List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或尾部添加删除元素,list的设计非常简单精巧,既可以作为栈,又可以作为队列,满足绝大多数需求。

lpush方法:从头部加入元素(栈),先进后出

形如:

127.0.0.1:6379> lpush list1 ‘hello‘
(integer) 1
127.0.0.1:6379> lpush list1 ‘world‘
(integer) 2
127.0.0.1:6379> lpush list1 ‘welcome‘
(integer) 3
127.0.0.1:6379> lrange list1 0 -1
1) "welcome"
2) "world"
3) "hello"
127.0.0.1:6379> 

(0 -1表示从头取到末尾)

rpush方法:从尾部加入元素(队列),先进先出

形如:

127.0.0.1:6379> rpush list2 ‘hello‘
(integer) 1
127.0.0.1:6379> rpush list2 ‘world‘
(integer) 2
127.0.0.1:6379> rpush list2 ‘welcome‘
(integer) 3
127.0.0.1:6379> lrange list2 0 -1
1) "hello"
2) "world"
3) "welcome"
127.0.0.1:6379> 
时间: 2024-11-03 22:58:41

Redis中的数据类型的相关文章

redis中各种数据类型对应的jedis操作命令

一.常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 String是最简单的类型,一个key对应一个value String类型的数据最大1G. String类型的值可以被视作integer,从而可以让“INCR”命令族操作(incrby.decr.decrby),这种情况下,该integer的值限制在64位有符号数. 在list.set和zset中包含的独立的元素类型都是Redis String类

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中hash数据类型

remoteSelf:1>hset website google "www.google.com" "1" remoteSelf:1>hget website "ERR wrong number of arguments for 'hget' command" remoteSelf:1>hget website google "www.google.com" remoteSelf:1>hset webs

Redis中3种特殊的数据类型

Redis中3种特殊的数据类型 Bitmap Bitmap就是通过一个bit位来表示某个元素对应的值或者状态 其中的 key 就是对应元素本身,实际上底层也是通过对字符串的操作来实现 Redis 从 2.2 版本之后新增了setbit, getbit, bitcount 等几个 bitmap 相关命令 虽然是新命令,但是本身都是对字符串的操作 SETBIT key offset value 其中 offset 必须是数字,value 只能是 0 或者 1 这个命令的返回值是修改前的值 比如调用

Redis中3种特殊的数据类型(BitMap、Geo和HyperLogLog)

前言 Reids 在 Web 应用的开发中使用非常广泛,几乎所有的后端技术都会有涉及到 Redis 的使用.Redis 种除了常见的字符串 String.字典 Hash.列表 List.集合 Set.有序集合 SortedSet 等等之外,还有一些不常用的数据类型,这里着重介绍三个.下面话不多说了,来一起看看详细的介绍吧. BitMap BitMap 就是通过一个 bit 位来表示某个元素对应的值或者状态, 其中的 key 就是对应元素本身,实际上底层也是通过对字符串的操作来实现.Redis 从

面试中经常问到的Redis七种数据类型,你都真正了解吗?

前言 Redis不是一个简单的键值对存储,它实际上是一个支持各种类型数据结构的存储.在传统的键值存储中,是将字符串键关联到字符串值,但是在Redis中,这些值不仅限于简单的字符串,还可以支持更复杂的数据结构.下面就是Redis支持的数据结构: 字符串(String):二进制安全字符串. 列表(List):根据插入顺序排序的字符串元素列表,基于链表实现. 集合(Set):唯一的乱序的字符串元素的集合. 有序集合(Sorted Set):与集合类似,但是每个字符串元素都与一个称为score的数字相关

辛星浅析Redis中与key有关的命令

在Redis中,我们还可以直接对key直接操作,下面是我们常用的主要命令: (1)keypattern   它表示获取所有匹配pattern的keys,这里需要注意的是,我们应该避免使用该命令,因为对于大型数据库而言,该命令非常耗时,对Redis服务器的性能打击也是比较大的.它支持glob-style的通配符格式,比如用*表示任意一个或者多个字符,用?表示任意字符,用[xyz]表示方括号中的任意一个字母. (2)del   key ....   它是从数据库中删除参数中指定的keys,如果指定的

Redis 中 5 种数据结构的使用场景介绍

这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String.Hash.List.Set.Sorted Set做了讲解,需要的朋友可以参考下 一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 redis 中一共有5种数据结构,那每种数据结构的使用场景都是什么呢? String——字符串 Hash——字典

Redis 2.8 数据类型

1  Redis数据类型 1.1   String Key'[{"CityId":18,"CityName":"xian","ProvinceId":27,"CityOrder":1},{"CityId":53,"CityName":"guangzhou","ProvinceId":27,"CityOrder"