博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis 命令
阅读量:4120 次
发布时间:2019-05-25

本文共 3448 字,大约阅读时间需要 11 分钟。

转:    

 

Redis 命令参考:

一、常用数据类型简介:

      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类型。

2.List类型

链表类型,主要功能是push、pop、获取一个范围的所有值等。其中的key可以理解为链表的名字。

在Redis中,list就是Redis String的列表,按照插入顺序排序。比如使用LPUSH命令在list头插入一个元素,使用RPUSH命令在list的尾插入一个元素。当这两个命令之一作用于一个空的key时,一个新的list就创建出来了。

List的最大长度是2^32-1个元素。

3.Set类型

集合,和数学中的集合概念相似。操作中的key理解为集合的名字。

在Redis中,set就是Redis String的无序集合,不允许有重复元素。

Set的最大元素数是2^32-1。

Redis中对set的操作还有交集、并集、差集等。

4.ZSet(Sorted Set)类型

Zset是set的一个升级版本,在set的基础上增加了一个顺序属性,这一属性在添加修改元素时可以指定,每次指定后zset会自动安装指定值重新调整顺序。可以理解为一张表,一列存value,一列存顺序。操作中的key理解为zset的名字。

Zset的最大元素数是2^32-1。

对于已经有序的zset,仍然可以使用SORT命令,通过指定ASC|DESC参数对其进行排序。

5.hash类型

hash是最接近关系结构的数据类型,可以将数据库一条记录或程序中一个对象转换成hashmap存放在redis中。

1 sadd 命令:

                sadd   <key>    <member>  [<member>...]   将一个或多个member加入到key中,如果已经存在,则会被忽略。如果key不存在,则会默认创建该集合。如果key不是集合类型,返回错误。

redis 127.0.0.1:6379> sadd amimal 'cat' 'dog' 'pig'     # 添加多个元素  (integer) 3  redis 127.0.0.1:6379> sadd amimal 'monkey' 'cat'         # 添加重复的元素被忽略  (integer) 1  redis 127.0.0.1:6379>  

2 smembers 命令:

                smembers   <key>    返回key中所有的成员列表。如果key不存在,则返回空。

redis 127.0.0.1:6379> smembers amimal  1) "monkey"  2) "pig"  3) "cat"  4) "dog"  redis 127.0.0.1:6379> smembers products  (empty list or set)  redis 127.0.0.1:6379> 

 3 srem 命令:

               srem  <key>  <member> [<member>...]   移除key中的一个或者多个member元素,如果不存在,则会被忽略。如果key不存在,则返回空。

redis 127.0.0.1:6379> srem amimal 'dog'        # 移除已存在的元素  (integer) 1  redis 127.0.0.1:6379> smembers amimal  1) "pig"  2) "cat"  3) "monkey"  redis 127.0.0.1:6379> srem amimal 'chicken'   # 移除不存在的元数  (integer) 0  redis 127.0.0.1:6379> smembers amimal  1) "monkey"  2) "cat"  3) "pig" 
还有其他命令请参考——redis命令参考

Hash是一种数据结构,一般翻译做“散列”,也有直接音译为“哈希”。Redis  hash  是一个string类型的field和value的映射表。它特别适合用于存储对象。同将对象的每个字段存成单个string类型,存储为hash类型会占用更少的内存,并且方便的存取整个对象。

下面是关于hash类型存储的一些常用方法(命令):

1,hset 命令:

hset   <key>   <field>    <value>     将hash表key中的field域设置为值value。如果field值不存在,操作成功后返回1,如果field值已经存在,则覆盖原来的值,成功后返回0。

redis 127.0.0.1:6379> hset user name  'zhangsan'          # 设置值为zhangsan  (integer) 1  redis 127.0.0.1:6379> hset user name  'lisi'              # 将值覆盖为lisi  (integer) 0  redis 127.0.0.1:6379>  
2,hget  命令:

hget  <key>   <field>   返回哈希表 key 中给定域 field 的值

redis 127.0.0.1:6379> hget user name  "lisi"
3,hsetnx 命令:

hsetnx    <key>  <field>   <value>    当且紧当filed域不存在时,设置值为value。如果该域不存在,返回1,如果该域已经存在,则不会执行操作,且返回0。

redis 127.0.0.1:6379> hget user name  "zhangsna"  redis 127.0.0.1:6379> hsetnx user name 'lisi'  (integer) 0                                          # 将name域的值设置为lisi时操作失败,因为name域已经存在  redis 127.0.0.1:6379> hsetnx user age  22       # 将age域的值设置为22,操作成功,应为age域不存在  (integer) 1  redis 127.0.0.1:6379> hget user name                 # 取出name的值,并没有被修改  "zhangsna"  redis 127.0.0.1:6379> hget user age  "22"  redis 127.0.0.1:6379>  

4,hmset 命令:

hmset    <key>   <field>   <value>  [<field>   <value>...]  同时将多个“域-值”对存储在key键中,如果key不存在会自动创建,如果field已经存在,则会覆盖原来的值。操作成功后返回值OK。

redis 127.0.0.1:6379> hmset product name 'computer' price '3200' size '14inch'  OK
5,hmget 命令:

hmget   <key>   <field>  [<field>....]  返回hash表key的一个或者多个域值。如果给定的域名称在此hash表中不存在,则返回nil。

redis 127.0.0.1:6379> hmget product name price size contact  1) "computer"           # name的值  2) "3200"               # price的值  3) "14inch"             # size的值  4) (nil)                # contact的值在hash表中不存在,返回nil
至于string,list,zset的操作r
edis命令参考

转载地址:http://sispi.baihongyu.com/

你可能感兴趣的文章
还不会正则表达式?看这篇!
查看>>
100道+ JavaScript 面试题,助你查漏补缺
查看>>
JavaScript深入理解之闭包
查看>>
这才是学习Vite2的正确姿势!
查看>>
7 个适用于所有前端开发人员的很棒API,你需要了解一下
查看>>
25个构建Web项目的HTML建议,你需要了解一下!
查看>>
【web素材】02-10款大气的购物商城网站模板
查看>>
6种方式实现JavaScript数组扁平化(flat)方法的总结
查看>>
如何实现a===1 && a===2 && a===3返回true?
查看>>
49个在工作中常用且容易遗忘的CSS样式清单整理
查看>>
20种在学习编程的同时也可以在线赚钱的方法
查看>>
隐藏搜索框:CSS 动画正反向序列
查看>>
12 个JavaScript 特性技巧你可能从未使用过
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(上)
查看>>
【视频教程】Javascript ES6 教程27—ES6 构建一个Promise
查看>>
【5分钟代码练习】01—导航栏鼠标悬停效果的实现
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(中)
查看>>
8种ES6中扩展运算符的用法
查看>>
【视频教程】Javascript ES6 教程28—ES6 Promise 实例应用
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
查看>>