Redis不同数据类型的命令语句详解

目录
  • 一、String
    • Ⅰ、set、get、append、strlen、exists
    • Ⅱ、incr、decr、incrby、decrby
    • Ⅲ、getset、setnx
    • Ⅳ、setex、ttl
    • Ⅴ、mget、mset、msetnx
  • 二、List
    • Ⅰ、lpush、lpushx、lrange
    • Ⅱ、lpop、llen
    • Ⅲ、lrem、lset、lindex、ltrim
    • Ⅳ、linsert
    • Ⅴ、rpush、rpushx、rpop、rpoplpush
  • 三、Hash
    • Ⅰ、hset、hget、hexisits、hdel、hlen、hsetnx
    • Ⅱ、hincrby
    • Ⅲ、hgetall、hkeys、hvals、hmset、hmget
  • 四、set
    • Ⅰ、sadd、smembers、scard、sismember
    • Ⅱ、spop、srem、srandmember、smove
  • 五、Sorted Set
    • Ⅰ、zadd、zcard、zcount、zrem、zincrby、zscore、zrange、zrank
    • Ⅱ、zrangebyscore、zremrangebyrank、zremrangebyscore
    • Ⅲ、zrevrange、zrevrangebyscore、zrevrank

一、String

String是Redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储人了数据类型,比如数字、图片、序列化对象等

Ⅰ、set、get、append、strlen、exists

append key value
#追加键值,并返回追加后的长度(若键不存在,则相当于创建键)
exists key [key...]
#判断该键是否存在,存在返回1,否则返回0
set key value [expiration EX seconds|PX milliseconds] [NX|XX]
#创建键
get key
#查看键值
strlen key
#获取指定key的字符长度

Ⅱ、incr、decr、incrby、decrby

需要值为整数,否则会报错

incr key
#键值增1
decr key
#键值减1
incrby key increment
#键值增加指定值
decrby key increment
#键值减少指定值

Ⅲ、getset、setnx

GETSET key value
#获取key值并返回,同时给key设置新值

SETNX key value
#不存在键的话执行set操作,存在的话不执行

Ⅳ、setex、ttl

setex key seconds value
#设置指定key的过期时间为指定值

ttl key
#tt1命令查看指定Key的剩余存活时间(秒数),0表示已经过期,-1表示永不过期。获取已过
期的Key将返回(nil)

Ⅴ、mget、mset、msetnx

MSET key value [key value …]
#批量设置键-值对

MGET key [key …]
#批量获取键值对

MSETNX key value [key value …]
#批量设置键值对,都不存在就执行并返回1;只要有一个存在就不执行并返回0

二、List

列表的元素类型为String,按照插入顺序在列表的头部和尾部添加元素

Ⅰ、lpush、lpushx、lrange

LPUSH key value [value …]
#在头部(左侧)依次插入列表元素 

LPUSHX key value
#键必须存在才能执行,在头部插入元素值并返回并返回列表元素数量

LRANGE key start stop
#取从位置索引start到位置索引stop的所有元素(所以以0开始)
lrange key 0 -1
#展示所有

Ⅱ、lpop、llen

lpop key
#移除并返回键的第一个元素

llen key
#获取表中元素数量

Ⅲ、lrem、lset、lindex、ltrim

lrem key count value
#从头部开始删除count个为value的元素,并返回实际删除数量
lset key index value
#将位置索引为index的元素设置新值value
lindex key index
#获取索引为index的元素
ltrim key start stop
#仅保留从位置索引start到索引stop的元素

lrem删除一个符合value为a的值

lset将索引为1(从0开始,即第二个)的元素替换为新值a,获取索引为2的元素

只保留索引0~2的元素

Ⅳ、linsert

LINSERT key BEFORE|AFTER pivot value
#在元素pivot的前面(做左)或后面(右)插入新元素value

在c前面插入b

Ⅴ、rpush、rpushx、rpop、rpoplpush

RPUSH key value [value …]
#在列表的尾部依次插入value

RPUSHX key value
#key必须存在才可执行,将value从尾部插入,并返回所有元素数量

RPOP key
#在尾部弹出(移除)一个元素,并返回该元素

RPOPLPUSH source destination
#在key1的尾部弹出一个元素并返回,将它插入key2的头部

rpush从test尾部依次插入jklmn

rpop尾部第一个元素

将test的尾部元素m弹出,同时再插入到test1的头部(原子性的完成这两步操作),也可以作用在test自己身上,将最后一个元素提到第一个

三、Hash

Hash用于存储对象,可以采用这样的命名方式(hash格式):对象列别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值

Ⅰ、hset、hget、hexisits、hdel、hlen、hsetnx

hset key field value
#创建key

hget key field
#获取key-value

hexists key field
#key是否存在

hdel key field [field ...]
#删除指定key

hlen key
#key字段数

hsetnx key field value
#不重复的创建key,即只有指定的key不存在才可以创建

Ⅱ、hincrby

hincrby key field increment
#给指定的hash类型(整数)值指定增长值

key hash kk字段设值为4,hincrby1后kk值为5

Ⅲ、hgetall、hkeys、hvals、hmset、hmget

hgetall key
#输出指定字段的所有字段以及值

hkeys key
#输出指定键中的所有字段名

hvals key
#输出指定键中的所有字段值

hmset key field value [field value ...]
#一次性设置多个字段

hmget key field [field ...]
#一次性获取多个字段

四、set

无序集合,元素类型为string类型,元素具有唯一性,不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算

应用范围:

可以使用Redis的Set数据类型跟踪一些唯一性数据,比如访问某一博客的唯一IP地址信息。对于此场景,我们仅需在每次访问该博客时将访问者的IP存入Redis中,Set数据类型会自动保证IP地址的唯一性。充分利用Set类型的服务端聚合操作方便、高效的特性,可以用于维护数据对象之间的关联关系。比如购买某一电子设备的客户ID被存储在一个指定的Set中,而购买另外一种电子产品的客户ID被存储在另外一个Set中,如果此时我们向获取有哪些客户同时购买了这两种商品时,Set的intersections命令就可以充分发挥它的方便和效率的优势

Ⅰ、sadd、smembers、scard、sismember

sadd key member [member ...]
#创建键并加入member

smembers key
#查看指定key中所有的members

scard key
#查看指定key中members个数

sismember key member
#判断指定key中的member是否存在

创建key-set,members为qq、ww、ee、rr,判断qq在其中返回1,判断pp不在其中返回0

Ⅱ、spop、srem、srandmember、smove

spop key [count]
#随机的移除并返回key中的某一成员

srem key member [member ...]
#从指定key中移除指定member

srandmember key [count]
#随机输出指定数量的members

smove source destination member
#将一个member移动到另一个key中

五、Sorted Set

有序集合,元素类型为string,元素具有唯一性,不能重复。每个元素都会关联一个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同

应用范围:

可以用于一个大型在线游戏的积分沛航胖,每当玩家的分数发生变化时,可以执行ZADD命令更新玩家的分数,此后再通过ZRANGE命令获取积分TOP10的用户信息。当然我们也可以利用ZRANK命令通过usename来获取玩家的排行信息。最后我们将组合使用ZRANGE和ZRANK命令快速的获取和某个玩家积分相近的其他用户的信息。Sorted-Set类型还可用于构建索引数据

Ⅰ、zadd、zcard、zcount、zrem、zincrby、zscore、zrange、zrank

zadd key [NX|XX] [CH] [INCR] score member [score member ...]
#向有序集合内添加members,或更新已存在的score

zcard key
#获取key中的members数量

zcount key min max
#输出满足 min <= score <= max 条件的成员数量

zrem key member [member ...]
#删除成员member并返回操作后的成员数量

zincrby key increment member
#让指定的成员以指定increment增加

zrange key start stop [WITHSCORES]
#查看成员,从0开始

zrank key member
#获取成员的索引位置

Ⅱ、zrangebyscore、zremrangebyrank、zremrangebyscore

zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
#获取满足min <= score <= max 的成员

zremrangebyrank key start stop
#删除满足min <= rank <= max 的成员

zremrangebyscore key min max
#删除满足min <= score <= max 的成员

Ⅲ、zrevrange、zrevrangebyscore、zrevrank

zrevrange key start stop [WITHSCORES]
#以位置索引从高到低的方式获取并返回此区间内的成员

zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
#获取满足 min <= score <= max 的成员

zrevrank key member
#获取指定成员的索引位置

到此这篇关于Redis不同数据类型的命令语句详解的文章就介绍到这了,更多相关Redis命令语句内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • redis中数据类型命令整理

    redis是键值对的数据库,有5中主要数据类型: 字符串类型(string),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset) 几个基本的命令: 函数 说明 keys * 获得当前数据库的所有键 
exists key [key ...] 判断键是否存在,返回个数,如果key有一样的也是叠加数 del key [key ...] 删除键,返回删除的个数 
type key 获取减值的数据类型(string,hash,list,set,zset) flush

  • Redis基本数据类型哈希Hash常用操作

    目录 Redis数据类型Hash常用操作 一.hset 二.hget 三.hmset 四.hmget 五.hgetall 六.hdel 七.hlen 八.hexists 九.hkeys 十.hvals 十一.hincrby 十二.hsetnx Redis数据类型Hash常用操作 redis里的hash是一个string类型的field(字段)和value(值)的映射表.特别适合用于存储对象,每个hash可以存储40多亿键值对. 熟悉python的童鞋可以想象成字典dict.之前的数据类型存储都是

  • redis的list数据类型相关命令介绍及使用

    目录 list列表简介 常用命令 添加命令 查询命令 弹出/删除命令 修改命令 阻塞弹出命令 应用场景 list列表简介 list是简单的字符串列表(说通俗点,存储的还是字符串),按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边),个列表最多可以包含^32-1个元素(每个列表超过40亿个元素). Redis中的list和Java中的LinkedList很像,底层都是一种链表结构,list的插入和删除操作非常快,时间复杂度为 0(1),不像数组结构插入.删除操作需要移动数据.

  • Redis基本数据类型Set常用操作命令

    目录 Redis基本数据类型Set常用操作 一.sadd 添加一个.多个元素 二.smembers 查看集合 三.scard 元素数量 四.srem 移除一个.多个元素 五.srandmember 随机元素 六.spop 随机移除一个.多个元素 七.smove 移动元素到目标集合 八.sdiff 差集 九.sinter 交集 十.sunion 并集 Redis基本数据类型Set常用操作 Set是String类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. 另外,redis中

  • redis部署及各种数据类型使用命令详解

    目录 编译安装redis 开始部署 报错gcc命令没有找到: #解决编译安装所需的依赖环境继续部署 redis服务端运行和客户端连接 redis配置 redis简单配置并启动 set.get命令 简单配置文件介绍 redis基础数据类型 redis命令 redis简单命令 字符串类型命令 list类型,双向队列 redis的集合,是一种无序的集合,集合中的元素没有先后顺序. 哈希数据结构 发布订阅 编译安装redis 开始部署 [root@mcw01 ~]$ ls anaconda-ks.cfg

  • Redis基本数据类型List常用操作命令

    目录 Redis数据类型List操作 一.push 插入元素 1. lpush,在头部插入 2. rpush,在尾部插入 二.range 通过区间获取元素 三.pop 移除元素 1. lpop 左边移除 2. rpop 右边移除 四.lindex 通过下标获取元素 五.llen 获取list长度 六.lrem 移除指定元素 七.ltrim 修剪 八.组合命令 rpoplpush 移除并添加 九.exists 判断key 是否存在 十.lset,设置指定下标的值 十一.linsert,指定位置之前

  • Redis不同数据类型的命令语句详解

    目录 一.String Ⅰ.set.get.append.strlen.exists Ⅱ.incr.decr.incrby.decrby Ⅲ.getset.setnx Ⅳ.setex.ttl Ⅴ.mget.mset.msetnx 二.List Ⅰ.lpush.lpushx.lrange Ⅱ.lpop.llen Ⅲ.lrem.lset.lindex.ltrim Ⅳ.linsert Ⅴ.rpush.rpushx.rpop.rpoplpush 三.Hash Ⅰ.hset.hget.hexisits.h

  • sql语言中delete删除命令语句详解

    Table:用于标示删除的数据表的名称. 1:该表必须是一个事实存在的表,对于该处的表必须是一个实际存在于数据库中的表格,必能是由于select等语句创造出来的中间表. 2:该方式可以通过联合的方式同时在两个表格中满足一定关联条件的数据. Top(*)用于指定删除的数据的数量 1:Top(N)表示在该表中删除表格中最靠前的N条数据. 2:在delete中不能和order连用,所以也不能通过top和order by连用来删除按照某一条件排序的全部的靠前的几条记录. 3:改语句不能用于sql2000

  • Redis数据类型string和Hash详解

    目录 String类型命令操作 设置指定key的值 获取指定key的值 返回key中字符串值的子串 获取多个给定key的值 返回key所对应的字符串的长度 设置一个或多个键值对 将key中所存储的数值加一 将key中所存储的数值减一 字符串追加 Hash类型 设置一个Hash数据 获取指定哈希表中所有的字段和值 获取存储在哈希表中指定字段的值 删除一个或多个哈希表字段 获取哈希表中字段的数量 获取哈希表中的所有字段 获取哈希表中所有的值 摘要:Redis中有五大数据类型,分别是String.Li

  • Redis 命令的详解及简单实例

    Redis 命令的详解及简单实例 Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中. 语法 Redis 客户端的基本语法为: $ redis-cli 实例 以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli.该命令会连接本地的 redis 服务. $redis-cli redis 127.0.0.1:6379>

  • MySQL一些常用高级SQL语句详解

    目录 一.MySQL进阶查询 二.MySQL数据库函数 三.MySQL存储过程 总结 一.MySQL进阶查询 首先先创建两张表 mysql -u root -pXXX #登陆数据库,XXX为密码 create database jiangsu; #新建一个名为jiangsu的数据库 use jiangsu; #使用该数据库 create table location(Region char(20),Store_name char(20)); #创建location表,字段1为Region,数据类

  • Redis 哈希Hash底层数据结构详解

    目录 1. Redis 底层数据结构 2. hashtable 3. redisDb 与 redisObject 4. ziplist 5. linkedlist 6. quicklist 1. Redis 底层数据结构 Redis数据库就像是一个哈希表,首先对key进行哈希运算得到哈希值再取模得到一个下标,每个元素是一个节点,节点之间形成链表.这感觉有点像Java中的HashMap. 不同的数据类型的实现方式是不一样的,可以通过object encoding命令查看底层真正的数据存储结构 同一

  • Redis 实现队列原理的实例详解

    Redis 实现队列原理的实例详解 场景说明: ·用于处理比较耗时的请求,例如批量发送邮件,如果直接在网页触发执行发送,程序会出现超时 ·高并发场景,当某个时刻请求瞬间增加时,可以把请求写入到队列,后台在去处理这些请求 ·抢购场景,先入先出的模式 命令: rpush + blpop 或 lpush + brpop rpush : 往列表右侧推入数据 blpop : 客户端阻塞直到队列有值输出 简单队列: simple.php $stmt = $pdo->prepare('select id, c

  • Mysql导入导出工具Mysqldump和Source命令用法详解

    在PHP网站开发中,时常遇到Mysql数据库备份或数据库迁移工作,这时Mysql怎么导入导出数据库中的数据就非常关键,Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式(txt)的SQL文件,通过Mysql Source命令能够将SQL文件导入Mysql数据库中,下面通过Mysql导入导出SQL实例详解Mysqldump和Source命令的用法. M

  • Linux中mysqldump命令实例详解

    mysqldump是mysql数据库中备份工具,用于将MYSQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中. 语法: mysqldump (选项) 选项: --add-drop-table :在每个创建数据表语句前添加删除数据库的语句  --add-locks:备份数据库表时锁定数据库表  --all-databases:备份mysql服务器上的所有数据库  --comments:添加注释信息  --compact:压缩模式,产生更少的输出  --complete-insert

  • Linux中tcpdump命令实例详解

    前言 tcpdump是一款类Unix/Linux环境下的抓包工具,允许用户截获和显示发送或收到的网络数据包. tcpdump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息.tcpdump 是一个在BSD许可证下发布的自由软件. 下面这篇文章将给大家详细介绍关于Linux中tcpdump命令的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍吧. 一.命令格

随机推荐