Redis的数据类型及操作

  • Strings

    最简单的类型,一个Key对应一个Value,string类型是二进制安全的。Redis的string可以包含任何数据,如图片或序列化的对象

    • 操作

      • Set:设置key对应的值为string类型的value,如 set name Fahy
      • Setnx:设置key对应的值为string类型的value,如果key已经存在,返回0,如 setnx name Fahy
      • Setex:设置key对应的值为string类型的value,并指定此键值对的有效期,如 setex name 10 Fahy
      • Setrange:设置指定key的value值的子字符串,替换相同长度的字符,如 已有一对key-value为[email protected],则 setrange email 8 qq.com 会使[email protected]
      • mset:一次设置多个key的值,成功返回ok表示所以值都被设置,失败返回0表示没有任何值被设置,如 mset key1 huangweijian key2 others
      • msetnx:一次设置多个key的值,成功返回ok表示所有值都被设置,失败返回0表示没有任何值被设置,但不会覆盖以存在的key,如 msetnx key3 huangweineng key4 yellow
      • get:获取key对应的value,如果key不存在,返回nill,如 get key1
      • getset:设置key的值,并返回key的旧值,如 getset key2 huangsurong
      • getrange:获取key的value值的子字符串,如 getrange key1 0 4,返回从第0到第4个字符"huang"
      • mget:一次获取多个key的值,如果对应的key不存在,返回nil,如 mget key1 key2 key3
      • incr:对key的值做++操作,并返回新的值,当key不存在时,设置key值为0再进行加操作,如 incr key5
      • incrby:对key的值做加指定值操作,当key不存在时,设置key值为0再进行加操作,如 incrby key6  7
      • decr:对key的值做--操作,当key不存在时,设置key值为0再进行减操作,如 decr key7
      • decrby:对key的值做减指定值操作,当key不存在时,设置key值为0再进行减操作,如 decrby key8  7
      • append:给指定key的字符串追加value,返回新字符串值的长度,当key不存在时,添加该key,如 append key1 @sina.com
      • strlen:返回指定key的value长度,如 strlen key1
      • del:删除指定key,如 del key1
  • hashes:可建立一张hash表

    Redis hash是一个string类型的field(字段)和value的映射表,它的添加、删除操作都是O(I)(平均)。适合存储对象,占用更少的内存,并且方便存钱整个对象

    • 操作

      • hset:设置hash field为指定值,如果key不存在,则先创建,如 hset hashtable field hello
      • hsetnx:设置hash field为指定值,如果key不存在,则先创建,如果存在返回0,如 hsetnx hashtable field1 world
      • hmset:同时设置hash的多个field,如 hmset hashtable field2 helloween field3 christmas
      • hget:获取指定的hash field,如 hget hashtable field
      • hmget:获取全部指定的hash field,如 hmget hashtable field field1 field2
      • hincrby:指定的hash field加上特定值,如 hincrby hashtable field4 5
      • hdecrby:指定的hash field减去特定值,如 hdecrby hashtable field4 5
      • hexists:判断指定field是否存在,如 hexists hashtable field4
      • hlen:返回指定hash的field数量,如 hlen hashtable
      • hdel:删除指定hash的field,如 hdel hashtable field
      • hkeys:返回hash的所有field,如 hkeys hashtable
      • hvals:返回hash的所有value,如 hvals hashtable
      • hgetall:获取某个hash中全部的field几value,如 hgetall hashtable
  • lists:一个链表结构,主要功能是push,pop,获取一个范围的所有值等等,操作中key理解为链表的名字。

    Redis的list类型其实就是一个每个子元素都是string类型的双向链表。既可作为栈,又可作为堆

    • 操作

      • lpush:在key对应list的头部添加字符串元素,如 lpush list hello
      • rpush:在key对应的list的尾部添加字符串元素,如 rpush list world
      • linsert:在key对应list的特定位置前或后添加字符串,如 linsert list before world my 或 linsert list after hello you
      • lset:设置list中指定下表的元素值,如 lset list 1 he
      • lrange:返回指定范围内的元素,如 lrange list 0 -1
      • lrem:从key对应的list中删除n个和value相同的元素,n<0从尾删除,n=0全部删除,如 lrem list 1 you
      • ltrim:保留指定范围内的数据,如 ltrim list 1 -1
      • lpop:从list头部删除元素,并返回删除元素,如 lpop list
      • rpop:从list尾部删除元素,并返回删除元素,如 rpop list
      • rpoplpush:移除第一个list尾部元素到第二个list头部,如 rpoplpush list1 list2
      • lindex:返回名称为key的list的index位置的元素,如 lindex list 1
      • llen:返回key对应的list的长度,如 llen list
  • sets:集合,是string类型的无序集合

    Redis的set类型通过hash table实现的,添加、删除和查找的复杂度都是O(1)。对集合可以取并集、交集和差集。

    • 操作

      • sadd:向名称为key的set中添加元素,如 sadd settable hello
      • srem:删除名称为key的set中的元素,如 srem settable two
      • smember:获取名称为key的set中的所有元素,如 smember settable
      • spop:随机返回并删除名称为key的set中的元素,如 spop settable
      • sdiff:返回以key1为标准,与其他key不同的元素,如 sdiff set1 set2
      • skiffstore:将以key1为标准,与其他key不同的元素,存到key3中,如 sdiffstore key3 key1 key2
      • sinter:返回所有给定key的交集,如 sinter set1 set2
      • sinterstore:将所有给定key的交集存储到另一个key中,如 sinterstore key key1 key2
      • sunion:返回所有给定key的并集,如 sunion set1 set2
      • sunionstore:将所有给定key的并集存储到另一个key中,如 sunionstore key key1 key2
      • smove:从第一个key对应的set中移除member并添加到第二个对应的set中,如 smove set1 set2 hello
      • scard:返回名称为key的set元素个数,如 scard set1
      • sismember:测试member是否属于名称为key的set的元素,如 sismember set member
      • srandmember:随机返回名称为key的set的一个元素,如 srandmember set
  • sorted sets:在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以制定,每次指定后,zset会重新按新的值调整顺序,序号可相同,值不可相同
    • 操作

      • zadd:向名称为key的set中添加元素,并指定序号,如 zadd settable 1 hello
      • zrange:返回指定索引范围内的元素,添加withscores,返回序号,如 zrange settable 0 -1 withscores
      • zrem:删除名称为key的zset中个元素member,如 zrem settable hello
      • zincrby:如果在名称为key的zset中给已经存在元素member,则该元素的score增加increment,否则,向该集合中添加该元素,起score的值为increment,如 zincrby settable 2 earth
      • zrank:返回名称为key的zset中member元素的排名(按score从小到大排序),如 zrank settable earth withscores
      • zrevrank:返回名称为key的zset中member元素的排名(按score从大到小排序),如 zrevrank settable earth withscores
      • zrevrange:返回名称为key的zset(按score从大到小顺序)中的index从start到end的所有元素,如 zrevrange settable 0 -1 withscores
      • zrangebyscore:返回集合中score在给定区间的元素,如 zrangebyscore settable 1 3 withscores
      • zcount:返回集合中score在给定区间的元素个数,如 zcount settable 1 3
      • zcard:返回集合中的元素个数,如 zcard settable
      • zremrangebyrank:删除集合中排名的索引在给定区间的元素,如 zremrangebyrank settable 1 1
      • zremrangebyscore:删除集合中score在给定区间的元素,如 zremrangebyscore settable 1 2
时间: 2024-10-11 18:25:33

Redis的数据类型及操作的相关文章

Redis五大数据类型以及操作---散列表

目录: 一.redis的两种链接方式 二.redis的字符串操作(string) 三.redis的列表操作(list) 四.redis的散列表操作(类似于字典里面嵌套字典) 五.redis的集合操作(set) 六.redis的有序集合操作(zset) 一.redis的两种链接方式 1.简单连接 import redis conn = redis.Redis(host='10.0.0.200',port=6379) conn.set('k1','年后') print(conn.get('k1'))

redis:hash数据类型与操作

Redis hash是一个string类型的field和value的映射表.一个key可对应多个field,一个field对应一个value.将一个对象存储 为hash类型,较于每个字段都存储成string类型更能节省内存.新建一个hash对象时开始是用zipmap(又称为small hash)来存储的.这个zipmap其实并不是hash table,但是zipmap相比正常的hash实现可以节省不少hash本身需要的一些元数据存储开销.尽管zipmap的添加,删除,查找都是 O(n),但是由于

redis 的安装使用 数据类型 以及操作指令 一

安装 redis 到 /usr/目录下 我这里安装的是redis-3.2.9.tar.gz tar zxvf  redis-3.2.9.tar.gz  -C  /usr 然后进行 执行编译命令 make   执行安装  make install 进入redis目录   ll查看所有文件 将 redis.conf文件 移动到usr/local/redis/etc目录下 再进入redis/src 目录 将以下文件移动到 usr/local/redis/bin目录下  方便以后管理 此时进入 usr/

Redis详解:sorted sets数据类型及操作

sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序.可以理解为有两列的mysql表,一列存value,一列存顺序.操作中key理解为zset的名字. 系列文章: Redis详解:strings数据类型及操作 Redis详解:hashes数据类型及操作 Redis详解:lists数据类型及操作 Redis详解:sets数据类型及操作 和set一样sorted set也是string类

Redis详解:strings数据类型及操作

Redis的作者antirez(Salvatore Sanfilippo)曾经发表了一篇名为Redis宣言(Redis Manifesto)的文章,文中列举了Redis 的七个原则,以向大家阐明Redis 的思想. 1.Redis是一个操作数据结构的语言工具,它提供基于TCP的协议以操作丰富的数据结构.在Redis中,数据结构这个词的意义不仅表示在某种数据结构上的操作,更包括了结构本身及这些操作的时间空间复杂度. 2.Redis定位于一个内存数据库,正是由于内存的快速访问特性,才使得Redis能

Redis详解:sets数据类型及操作

set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作,操作中key理解为集合的名字. 系列文章: Redis详解:strings数据类型及操作 Redis详解:hashes数据类型及操作 Redis详解:lists数据类型及操作 Redis的set是string类型的无序集合.set元素最大可以包含(2的32次方)个元素. set的是通过hash table实现的,所以添加.删除和查找的复杂度都是O(1).hash table会随着添加或者删除自动的调

Redis入门教程:特性及数据类型的操作

虽然Redis已经很火了,相信还是有很多同学对Redis只是有所听闻或者了解并不全面,下面是一个比较系统的Redis介绍,对Redis的特性及各种数据类型及操作进行了介绍.是一个很不错的Redis入门教程. 一.介绍 1.Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,

Redis 学习(二) —— 数据类型及操作

Redis支持string.list.set.zset.hash等数据类型,这一篇学习redis的数据类型.命令及某些使用场景. 一.String,字符串 字符串是 Redis 最基本的数据类型.一个字符串最大为 512M 字节.字符串数据类型适用于很多场景,例如,缓存 HTML 片段或者页面. Redis 字符串是二进制安全的,也就是说,一个 Redis 字符串可以包含任意类型的数据,例如一张 JPEG 图像,或者一个序列化的对象. 我们可以把字符串当做位数组(位图)来处理,很容易统计一些基于

Redis五大数据类型的常用操作

在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set:有序集合). 原文地址:https://www.cnblogs.com/toutou/p/redis_data_type.html