一、全局命令

1.keys *            //查看所有键

2.dbsize           //键总数,如果存在大量键,线上禁止使用此命令

3.exists key     //存在返回1,不存在返回0

4.del key         //删除键, 返回删除键个数,删除不存在键返回0

5.expire key seconds //键过期,set name test  expire name 10 //10秒过期

6.ttl key             //查看剩余的过期时间

7.type key       //键的数据结构类型,键不存在返回none

二、字符串string

  实际上可以是字符串(包括XML JSON),还有数字(整形 浮点数),二进制(图片 音频 视频),最大不能超过512MB

1.set age 20 ex 20     //设值命令,10秒后过期  px 10000 毫秒过期

2.setnx name test     //不存在键name时,返回1设置成功;存在的话失败0,可以使用该命令做分布式锁

3.get key     //获值命令,存在则返回value, 不存在返回nil

4.mset country china city guangzhou     //批量设值

5.mget country city     //批量获值

6.incr age   //自增,必须为整数自加1,非整数返回错误,无age键从0自增返回1

7.decr age  //整数age减1

8.incrby age 2  //age + 2

9.decrby age 2  //age - 2

10.incrbyfloat score 1.1   //浮点型 score + 1.1

11. append key      //追加命令,set name chen;append name db;追加后成chendb

12.str key      //字符串长度,每个中文占3个字节

13.getrange key start stop  //截取字符串,set name helloworld;getrange 2 4;返回llo

14.object encoding key    //内部编码,int:8字节长整理;embstr:小于等于39字节串; raw:大于39字节的字符串

三、哈希hash

  内部编码有两种:ziplist和hashtable,当field少的时候或者value小于64字节,使用ziplist,否则hashtable;每个hash可以存储232 - 1个键值对

1.hset key field value   //设值,hset user:1 name chendb,成功返回1,失败返回0

2.hget key field     //取值,hget user:1 name ,返回chendb

3.del key field     //删值,del user:1 name ,返回删除的个数

4.hlen key  //计算个数,hset user:1 name chendb;hset user:1 age 26;hlen user:1;返回2

5.hmset key field value [field value] //批量设值,hmset user:2 name chendb age 26 sex 男

6.hmget key field [field]   //批量取值,hmget user:2 name age sex

7.hexists key field  //判断field是否存在,存在返回1不存在返回0

8.hkeys key   //获取所有field,hkeys user:2;返回name age sex

9.hvals key   //获取所有值,hvals user:2;返回 chendb 26 男

10.hgetall key  //获取所有field和value,返回 name chendb age 26 sex 男

11.hincrby key field 1 //值加1,hincrby user:2 age  1;age + 1

12:hincrbyfloat  key value //浮点型加

四、列表list

  3.2版本之后,列表只有quicklist内部编码,3.2版本之前分为ziplist,linkedlist

1.rpush user:1 c b a //从右向左插入cba

2.lrange user:1 0 -1 //从左到右获取列表所有元素,返回cba

3.lpush user:2 c b a //从左向右插入cba

4.linsert user:2 before b teacher //在b之前插入teacher

5.lindex user:1 -1 //返回最末尾a,-2返回b

6.llen user:1 //返回当前列表长度

7.lpop user:1 //把最左的第一个元素c删除

8.rpop user:1 //把最右的元素a删除

9.lrem key count value  //删除指定元素,count代表删除多少个,不足的删完,

如key中只有4个b,count为5,则将全部的b删除

10.ltrim key1 3  //保留第二到第四个元素,其余全部删除

11.lset user1 2 java  //将第三个元素替换成java

五、集合set

  当元素少于512个且都为整数是,内部编码为intset,否则为hashtable

1.exists key   //检查键是否存在

2.sadd user a b c //添加3个元素,元素不能重复,重复无效

3.smembers user  //获取user的所有元素,返回结果无效

4.srem user a  //删除元素a,不存在返回1

5.scard user  //计算元素个数

6.sismember user a //判断元素在集合是否存在,存在返回1,不存在返回0

7.srandmember user  2   //随机返回2个元素

8.spop user 2  //随机返回2个元素并从集合删除

9.sinter user:1 user:2  //求两集合的交集

10.sunion user:1 user:2  //求两集合的并集

11.sdiff user:1 user2  //求两个集合的差集

12.sinterstore user_1 user:1 user:2 //将两个集合的交集保存到user_1中

12.sunionstore user_2 user:1 user:2 //将两个集合的并集保存到user_2中

12.sdiffstore user_3user:1 user:2 //将两个集合的差集保存到user_3中

六、有序集合

  元素个数小于128个,元素值小于64字节时,使用ziplist,否则使用skiplist

1.zadd user:zan 200 user:1  // 为key为user:zan的元素user:1赋值200,返回操作成功的条数1

2.zadd user:zan 200 user:1 100 user:2 30 user:3  //返回3

3.zadd test:1 nx 100 user:1 //键test:1必须不存在,主要用于添加

4.zadd test:1 xx incr 200 user:1   //键test:1必须存在,主要用于修改

5.zrange test:1 0 -1 withscores   //查看数值和成员名

6.zcard test:1  //计算成员个数

7.zcore key member//查看数值

8.zrank key member//返回名次,从0开始

9.zrevrank key member//倒序,分值越高,排名越靠前

10.zrem key member [member...]   //删除成员

11.zincrby key increment member//分值增加

12.zadd key xx incr increment member//分值增加

13.zrange key start stop  withscores  //指定排名范围的分数和成员

14.zrevrange key start stop withscores //倒序

15.zrangebyscore key min max withscores  //返回指定值范围的分数和成员

16.zrevrangebyscore  key min max withscores  //返回指定值范围的分数和成员,倒序

17.zrangebyscore key (120 +inf withscores    //120到无限大

18.zrevrangebyscore key (110 -inf withscores   //无限小到110

19.zcount key 110 300  //返回110 到300范围的成员个数

20.zremrangebyrank key 0 1 //删除指定排名内的升序元素

21.zremrangebyscore key 100 300  //删除值在100到300范围内的成员

22.zremrangebyscore  key (100 +inf    //删除值大于100(不包括100)的成员

23.有序集合的交集

zinterstore destination numkeys key ... [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]

destination:交集产生新的元素存储键名称

numkeys:  要做交集计算的键个数

key :元素键值

weights:每个被选中的键对应值乘weight, 默认为1

初始化数据:

zadd user:7 1 james 2 mike 4 jack 5 kate      //初始化user:7数据

zadd user:8 3 james 4 mike 4 lucy 2 lee  6 jim  //初始化user:8数据

交集例子

zinterstore user_jj 2 user:7 user:8 aggregate sum //2代表键合并个数,

//aggregate sum可加也不可加上,因为默认是sum

//结果user_jj:4james(1+3), 6mike(2+4)

zinterstore user_jjmax 2 user:7 user:8 aggregate max 或min

//取交集最大的分数,返回结果 3james  4mike, min取最小

weights:

zinterstore user_jjweight 2 user:7 user:8 weights 8 4 aggregate max

//1,取两个成员相同的交集,user:7->1 james  2 mike;  user:8->3 james  4 mike

//2,将user:7->james 1*8=8,  user:7->mike 2*8 =16,

最后user:7结果 8 james  16 mike;

//3,将user:8-> james 3*4=12, user:8->mike 4*4=16

最后user:8结果12 james  16 mike

//4,最终相乘后的结果,取最大值为  12 james 16mike

//5, zrange user_jjweight 0 -1 withscores 查询结果为  12 james 16mike

总结:将user:7成员值乘8,将user:8成员值乘4,取交集,取最大

24.有序集合并集

格式:zunionstore destination numkeys key ... [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]

destination:交集产生新的元素存储键名称

numkeys:  要做交集计算的键个数

key :元素键值

weights:每个被选中的键对应值乘weight, 默认为1

例子:

zunionstore user_jjweight2 2 user:7 user:8 weights 8 4 aggregate max

redis常用api的更多相关文章

  1. Redis数据结构和常用API

    Redis是一个速度非常快的非关系型数据库,可以存储键与5中不同数据结构类型之间的映射.这5种数据结构分别是STRING(字符串).LIST(列表).SET(集合).HASH(散列).ZSET(有序集 ...

  2. php版redis插件,SSDB数据库,增强型的Redis管理api实例

    php版redis插件,SSDB数据库,增强型的Redis管理api实例 SSDB是一套基于LevelDB存储引擎的非关系型数据库(NOSQL),可用于取代Redis,更适合海量数据的存储.另外,ro ...

  3. Redis中7种集合类型应用场景&redis常用命令

    Redis常用数据类型 Redis最为常用的数据类型主要有以下五种: String Hash List Set Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部 ...

  4. Redis常用API-使用文档

    一.Redis Client介绍 1.1.简介 Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对各类API进行封装调用. Jedis源码工程地址:https://g ...

  5. redis常用的命令总结

    redis常用的命令大全 1.基于内存的key-value数据库 2.基于c语言编写的,可以支持多种语言的api //set每秒11万次,取get 81000次 3.支持数据持久化 4.value可以 ...

  6. jedis常用API

    一.Redis Client介绍 1.1.简介 Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对各类API进行封装调用. Jedis源码工程地址:https://g ...

  7. Jedis 常用API使用

    使用Jedis操作Redis常用的API <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <depen ...

  8. Redis常用数据类型及各种数据类型应用和实现方式

    Redis常用数据类型: StringHashListSetSorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的: 首先Red ...

  9. redis常用命令-2

    redis常用命令 type your_key #查看Key类型 del your_key #删除key keys * #所有key info #信息 /usr/local/bin/redis-cli ...

随机推荐

  1. 字符串匹配(KMP&BF)

    字符串匹配   题目描述 设计一个程序,从一个主字符串中查找一个子字符串在主串中第一次出现的位置.主串和子串的长度不超过100.如果找不到,则输出-1. 程序输入说明 第一行输入一个整数N,说明需要进 ...

  2. 设置Python打印格式

    >>> def esc(code): ... return f'\033[{code}m' ... >>> print(esc('31;1;4') + 'reall ...

  3. 一个数据库操作类,适用于Oracle,ACCESS,SQLSERVER

    最近做了一个数据诊断的项目,里面自己写了一个数据库的操作类,包含:连接数据库.读数据表.执行SQL操作,释放数据库等组成,希望对大家有用,由于水平有限,若有错误或者代码不足地方欢迎指正,谢谢. ADO ...

  4. Python 自学笔记(五)

    1.布尔值 1-1.概念 定义计算机中的逻辑判断,只有两种结果,True和False. if,while后面的判断条件就是布尔值,只有条件为True的时候才执行. 1-2.数值比较 1-3.数值运算 ...

  5. Mask_RCNN

  6. 思科常见的防病毒ACL

    SW(config-ext-nacl)# 10 deny tcp any any eq 27665 SW(config-ext-nacl)# 20 deny tcp any any eq 16660 ...

  7. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_10-修改页面-前端-修改页面

    1.进入页面,通过钩子方法请求服务端获取页面信息,并赋值给数据模型对象 2.页面信息通过数据绑定在表单显示 3.用户修改信息点击“提交”请求服务端修改页面信息接口 3.3.3 修改页面 3.3.3.1 ...

  8. SaaS领域如何分析收入增长?

    SaaS领域如何分析收入增长? 今天我们试着将其模式运用到收入增长上进行分析.这对常规收入的计算会极有帮助,例如企业级应用软件(SaaS)或消费者订阅业务. 列举某公司通过月度订阅获得营收为例,为了更 ...

  9. es6 map()和filter()详解【转】

    原文地址:http://www.zhangxinxu.com/wordpress/2013/04/es5%e6%96%b0%e5%a2%9e%e6%95%b0%e7%bb%84%e6%96%b9%e6 ...

  10. HANA数据自助查询

    SAP HANA的客户端是C/S模式的,远程使用不太方便,目前有一款TreeSoft数据库管理系统,可以实现通过web方式,访问自助查询HANA数据.大大提高工作效率.还支持MySQL,Oracle, ...