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=hwj1993@sina.com,则 setrange email 8 qq.com 会使email=hwj1993@qq.com
- 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
- 操作
Redis的数据类型及操作的更多相关文章
- Redis常用数据类型以及操作
Redis常用数据类型以及操作 目录 Redis常用数据类型以及操作 一.String数据类型 1. SET/GET/APPEND/STRLEN 2. INCR/DECR/INCRBY/DECRBY ...
- Redis五大数据类型以及操作
目录: 一.redis的两种链接方式 二.redis的字符串操作(string) 三.redis的列表操作(list) 四.redis的散列表操作(类似于字典里面嵌套字典) 五.redis的集合操作( ...
- redis 五大数据类型以及操作
一.redis的两种链接方式 1.简单连接 import redis conn = redis.Redis(host='10.0.0.200',port=6379) conn.set('k1','年后 ...
- Redis五大数据类型及操作
目录: 一.redis的两种链接方式 二.redis的字符串操作(string) 三.redis的列表操作(list) 四.redis的散列表操作(类似于字典里面嵌套字典) 五.redis的集合操作( ...
- Redis入门教程:特性及数据类型的操作
虽然Redis已经很火了,相信还是有很多同学对Redis只是有所听闻或者了解并不全面,下面是一个比较系统的Redis介绍,对Redis的特性及各种数据类型及操作进行了介绍.是一个很不错的Redis入门 ...
- Redis 学习(二) —— 数据类型及操作
Redis支持string.list.set.zset.hash等数据类型,这一篇学习redis的数据类型.命令及某些使用场景. 一.String,字符串 字符串是 Redis 最基本的数据类型.一个 ...
- Redis五大数据类型的常用操作
在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...
- 缓存数据库-redis数据类型和操作(list)
转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部( ...
- Redis系列(二):Redis的数据类型及命令操作
原文链接(转载请注明出处):Redis系列(二):Redis的数据类型及命令操作 Redis 中常用命令 Redis 官方的文档是英文版的,当然网上也有大量的中文翻译版,例如:Redis 命令参考.这 ...
随机推荐
- Spring应用——对 JDBC 的支持
一.说明 1.Spring JDBC 对原始的 JDBC 进行了封装,使其更加易用. 2.JdbcTemplate 作为 Spring JDBC 的核心,为不同类型的 JDBC 操作提供了模板方法. ...
- Visual Studio Code初探
作者:Grey 本文的GIF动画均使用ScreenToGif进行录制. 摘要 微软今年发布了一款运行于 OS X,Windows 和 Linux 之上的免费跨平台编辑器: Visual Studio ...
- EF容器---代理类对象
#region 修改--官方的修改是,先查询,然后修改 /// <summary> /// 修改--官方的修改是,先查询,然后修改 /// </summary> static ...
- DistributedCache小记
一.DistributedCache简介 DistributedCache是hadoop框架提供的一种机制,可以将job指定的文件,在job执行前,先行分发到task执行的机器上,并有相关机制对cac ...
- [moka同学笔记]yii2.0小物件的简单使用(第一种方法)
这是第一种方法,还有另一种方法,其实都差不多. 1.在创建widgets\HelloWiget.php <?php /** * Created by PhpStorm. * User: Admi ...
- Java中处理异常中return关键字
Java中,执行try-catch-finally语句需要注意: 第一:return语句并不是函数的最终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂 ...
- nginx跨域处理
http://www.nginx.cn/nginx-download nginx.conf配置 if ($request_method = ‘OPTIONS’) { add_heade ...
- JS创建对象、继承原型、ES6中class继承
面向对象编程:java中对象的两个基本概念:1.类:类是对象的模板,比如说Leader 这个是泛称领导,并不特指谁.2:实例:实例是根据类创建的对象,根据类Leader可以创建出很多实例:liyi,y ...
- [js开源组件开发]js手机联动选择地区仿ios 开源git
js手机联动选择地区 前言:由于网上找到了一个mobiscrool,比较全,但是不开源,只能试用15天,正式版竟然要三千块钱,穷人只能自己动手,写了个只针对弹窗地区选择的. 本站点所有的资源均在git ...
- Sharepoint学习笔记—习题系列--70-573习题解析 -(Q125-Q126)
Question 125You are creating an application for SharePoint Server 2010.The application will run on a ...