一、通用命令

1、keys  遍历出所有的key

一般不在生产环境使用

2、dbsize key的总数

3、exists key

4、del key  删除指定key-value

5、expire key secods  设置多少秒过期

ttl  还剩多少秒过期

persist 取消过期时间

6、type 返回key的类型

二、单线程

一个次只能执行一个命令

拒绝长慢命令(keys等)

为什么单线程还这么快

1、纯内存(主要)

2、非阻塞IO

3、避免线程切换和竞态消耗

三、数据类型

1、字符串

类型:可以存字符串、整型、二进制、json等

大小:可以存512M

场景:缓存、计数器

命令:

1.1、get、set、del

1.2、set k v 不管k是否存在,都设置

setnx k v    k不存在才设置

set k v xx    k存在才设置

1.3、mset 批量设置

mget 批量获取

1.5

getset key newvalue   设置新的key并返回旧value

append key value    将value追加到旧的value

strlen key   返回字符串的长度(注意中文)

1.6

incrbyfloat 增加浮点数

getrange   获取字符串制定下标所有的值

setrange    设置指定下标所对应的值

1.7、适合做计数器,单进程无竞争

incr    自增1,如果key不存在为1

decr   自减1,如果key不存在为-1

incrby 自增k,如果key不存在为k

decrby 自减key,如果key不存在为-k

使用场景:缓存应用

2、哈希

一个键对应多个键值的结构,可以理解为小redis

哈希的API操作都是以h开头

2.1、hset、hget、hdel

2.2

hexists  key是否存在field

hlen      key中field的总数

2.3

hmget  批量获取

hmser   批量设置

2.4

hgetall

2.5、hsetnx、hincrby、hincrbyfloat

使用场景

统计每个用户个人主页的访问量

hincrby user:1:info pageview count

缓存储存视频基本信息

编程对比:

第一种:将整体数据序列化存进字符串

第二种:将数据分别存进字符串

第三种:将数据存进哈希

4、列表

有序、可重复、左右两边可以插入弹出

列表的API都以L开头

4.1、增

rpush  从右边插入

lpush   从左边插入

linsert  key before|after value newvalue在指定的值前后插入数据

4.2、删

lpop  从左弹出

rpop  从右弹

lrem key count value 根据count值,从列表中删除所有与balue相等的值

4.3、查

lrange

lindex

llen

4.4、改

lset

4.5、 查漏补缺

blpop

brpop

4.6、使用场景

微博时间轴

4.7、TIPS

1、栈

2、队列

3、有固定数量的列表

5、集合

集合内不能重复、无序、支持集合间操作

5.1、集合内

使用场景

可以用在点赞、抽奖中

5.2、集合间

使用场景:

共同关注、共同粉丝

6、有序集合

特点:

API

6.1、zadd  添加元素

6.2、zrem 删除元素

6.3、zscore 获取分数

6.4、zincrby   增加或减少分数

6.5、zcard     返回元素总个数

实例:

6.6、zrange  返回指定索引范围内升序元素

6.7、zrangebyscore  返回制定分数范围的升序元素

6.8、zermrangebyrank

6.9、zremrangbyscore  删除指定分数的升序元素

使用场景:排行榜

Redis数据类型的常用API以及使用场景的更多相关文章

  1. Redis数据类型和常用命令

    Redis相较于其它的数据库虽然简单,但是要熟记所有命令的用法也并非易事.一个简单的技巧是通过要操作的数据类型来将这些命令进行结构化. 数据类型和对应命令 所有存储于redis中的数据都对应于一个键值 ...

  2. jedis实现操纵redis的常用api及使用场景

    简单记录一下,和描述一下常用的业务场景.好记性不如烂笔头. pom.xml <!--整合redis--> <dependency> <groupId>redis.c ...

  3. Redis数据结构和常用API

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

  4. redis笔记总结之redis数据类型及常用命令

    三.常用命令 3.1 字符串类型(string) 字符串类型是Redis中最基本的数据类型,一个字符串类型的键允许存储的数据的最大容量为512MB. 3.1.1 赋值与取值: SET key valu ...

  5. Redis数据类型及常用命名总结

    Redis数据类型: Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合).  1.String(字符串) ...

  6. 几种数据类型的常用API

    数字 int() 字符串 #==========join===========在字符串前后插入字符 li = 'alexericrain' new_li = '_'.join(li) print(ne ...

  7. redis五种数据类型和常用命令及适用场景

    一.redis的5种数据类型: 1.基础理解: string 字符串(可以为整形.浮点型和字符串,统称为元素) list 列表(实现队列,元素不唯一,先入先出原则) set 集合(各不相同的元素) h ...

  8. redis数据类型及常用命令介绍(图文实例)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhgAAAFLCAYAAACUdvXUAAAgAElEQVR4nO3da1da58L2fT5KfPvc96 ...

  9. redis数据类型及常用命令使用

    redis干啥的,一般人都知道,但很多人只知道是个缓存数据库,其它的就不知道了,本猿无能亦是如此,然知耻而后勇,我们该理一理这里边的一些逻辑,看看redis究竟是怎么一回事儿,能干啥,怎么做的,这样才 ...

随机推荐

  1. JAVA课程设计——植物大战僵尸(团队)

    1.团队名称.团队成员介绍 团名:嗷嗷嗷嗷嗷 吴军霖(组长) 写得一手好代码也改得一手好bug 代码整洁好看源于强迫症 大概没有什么不会的东西叭 真正的王者段位 欧阳震霆(组员) 同样擅长写代码 在青 ...

  2. windows redis+lua的调试

    1.编写lua脚本my.lua local key = KEYS[1] --限流KEY(一秒一个) local limit = tonumber(ARGV[1]) --限流大小 local curre ...

  3. 【EasyNetQ】- 连接RabbitMQ

    如果您习惯于处理与SQL Server等关系数据库的连接,那么您可能会发现EasyNetQ处理连接的方式有点奇怪.与关系数据库的通信始终由客户端启动.客户端打开连接,发出SQL命令,在必要时处理结果, ...

  4. 一道js的前端面试题,主要弄清楚逗号表达式的作用

    群里看到的一道前端JS面试题.我以为我会,其实我错了.找了很多资料,写下来. var i,j,k; for( i = 0 , j = 0; i < 10 , j < 6; i++ , j+ ...

  5. CF451E Devu and Flowers 解题报告

    CF451E Devu and Flowers 题意: \(Devu\)有\(N\)个盒子,第\(i\)个盒子中有\(c_i\)枝花.同一个盒子内的花颜色相同,不同盒子的花颜色不同.\(Devu\)要 ...

  6. Android webview “location.replace” 不起作用

    js解决方法: function locationReplace(url){ if(history.replaceState){ history.replaceState(null, document ...

  7. 【luogu 1439 最长公共子序列】

    题目描述 给出1-n的两个排列P1和P2,求它们的最长公共子序列. 输入输出格式 输入格式: 第一行是一个数n, 接下来两行,每行为n个数,为自然数1-n的一个排列. 输出格式: 一个数,即最长公共子 ...

  8. 【CF edu 30 C. Strange Game On Matrix】

    time limit per test 1 second memory limit per test  256 megabytes input standard input output standa ...

  9. 如何使用Navicat备份数据库脚本

    Navicat是一个实用的工具,可以用来备份数据库(Oracle.MySQL.SQLServer)脚本. 备份步骤如下: 1.打开已建立的数据库连接,鼠标右键点击,选择[转储SQL文件]->[结 ...

  10. dbcp重连问题排查

    转载自:http://lc87624.iteye.com/blog/1734089 使用数据库连接池时,免不了会遇到断网.数据库挂掉等异常状况,当网络或数据库恢复时,若无法恢复连接池中的连接,那必然会 ...