Redis API的使用与理解

一、Redis 基础:

  1、通用命令:

    keys [pattern]:

      keys *  #遍历所有key;keys he*  #以‘he‘开头的key;

      keys he[a-e]* #以‘he’开头第三个字母是a-e之间;

      keys ph?  #‘?‘代码一位,以ph开头且字母是三位的key  

    dbsize:计算key的总数

    exists key :检查key是否存在(存在返回1,不存在返回0)

    del key [key...]:删除key(返回执行成功的条数)

    expire key seconds:设置key在seconds秒后过期

    ttl key:查看key剩余的过期时间

    persist key:去掉key的过期时间

    type key :返回key的类型

  2、数据结构:

二、Redis API的使用:

  1、String:

    set key value     设置键值对

    setnx key value    key不存在才设置

    set key value xx   key存在才设置

    get key         通过key获取value

    mget        批量获取,时间复杂度 o(n)

    mset        批量设置,时间复杂度o(n)

    getset key value   设置新值并返回旧值

    append key value   在原有value上追加值

    strlen key        字符长度 

    keys *         获取所有的key  (支持通配符 :* ? [])

    del key [kel...]    删除键值对

    incr key        对于整数value增加1

    incrby key num    对于整数value增加num

    decr key       对于整数value减少1

    decrby key num   对于整数value减少num

    incrbyfloat key num  对于浮点数value增加num

    getrange key start end   指定显示的位置       

    setrange key offset value  指定位置修改 

  2、Hash:

    hset key field value  将哈希表key中的域field 的值设为value

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

    hdel key field       删除哈希表key中的fileld的值

    hgetall key      返回哈希表key中,所有的域和值

    hkeys key       返回哈希表key中所有的域

    hmset key field value [field value]  批量设置field-value对到哈希表key中 o(n)

    hmget key field [field]        批量获取key中 field域的值 o(n)

    hexists key field   判断哈希表key中是否有field

    hlen key       获取哈希表key中field的数量 

    hvals key        返回哈希表key对应所有field的value

    hsetnx key field value  设置哈希表key对应field(存在,则失败)的value 

    hincrby key field intCounter    哈希表key对应的field的value增加 intCounter,返回结果

    hincrbyfloat key feild floatCounter  哈希表key对应的field的value增加 floatCounter,返回结果         

  3、List:

    1、lpush key value [value...]    从列表左端插入值(1-N个)

    2、rpush key value [value...]    从列表右端插入值(1-N个)

    3、linsert key before|after value newValue  在列表指定的值前|后插入newValue 

    4、lrem key count value           根据count值,从列表中删除所有value,count大于0从左到右,小于0从右到左,等于0删除所有相等项;例如:lrem key -1 a 从右到左删除 1 个相等的项

    5、ltrim key start end        按照索引范围修剪列表

    6、lrange key start end        获取列表指定索引范围所有item等的项

    7、llen key              返回列表key的长度

    8、lpop key             将列表key最左端的元素弹出

    9、rpop key            将列表key最右端的元素弹出             

    10、lindex key index        获取列表key指定的索引item

    11、lset key index newValue      设置列表key指定索引值为newValue

    12、blpop key timeout        阻塞左弹出,timeout是阻塞超时时间,timeout=0为永远不阻塞             

    13、brpop              阻塞右弹出,timeout是阻塞超时时间,timeout=0为永远不阻塞

  注:根据不同的业务需求有以下建议:

    1、lpush + lpop = stack (以栈的方式存取,后进先出)

    2、lpush + rpop = queue (以队列的方式存取,先进先出)

    3、lpush + ltrim = capped conllection (以固定长度的列表存取)

    4、lpush + brpop = message queue (消息队列) 

  4、Set:

    1、sadd key element        向集合key添加element(如果存在添加失败)

    2、srem key element        将集合key中的element移除

    3、scard key             计算集合大小

    4、sismember key it          判断it是否在集合中

    5、srandmember key count      从集合中随机挑count个元素

    6、spop key             从集合中随机弹出一个元素

    7、smembers key            获取集合所有元素 

    8、sdiff key key [key...]          获取差集

    9、sinter key key  [key...]       获取交集

    10、sunion key key [key...]       获取并集

  5、zSet:

    1、zadd key score element      添加元素 

    2、zrem key element        删除元素

    3、zscore key element        返回元素的score

    4、zincrby key increScore element  增加或减少元素的score

    5、zcard key            返回元素的总个数

    6、zrank key element        返回元素的排名位置(升序)

    7、zrange key start end withscores  返回指定索引范围的升序元素[score]

    8、zrangebyscore key min max withscores   返回指定score范围的升序元素

    9、zcount key min max        返回有序集合内在指定score范围内的个数

    10、zremrangebyrank key start end  删除指定排名内的升序元素

    11、zremrangebyscore key min max  删除指定分数内的升序元素

    12、zrevrank            返回元素的排名位置(降序)      

    13、zrevrange            返回指定索引范围的降序元素[score]

    14、zrevrangebyscore          返回指定score范围的降序元素

    15、zinterstore            交集

    16、zuninstore            并集

原文地址:https://www.cnblogs.com/haiyangwu/p/10328254.html

时间: 2024-10-04 04:57:15

Redis API的使用与理解的相关文章

【转】NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介

一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些第三方的开源类库.目前最流行的就是ServiceStack.Redis这个开源项目,其在GitHub上的下载地址为:https://github.com/ServiceStack/ServiceStack.Redis 进入下载页面,点击“Download Zip”按钮,即可下载该API包.解压该Zip包后,其实我们所用到的只是其中的几个

Redis学习笔记(三) Redis API与常用数据类型简介

一.Redis中常用数据类型 由上一篇博客可知,Redis目前提供五种数据类型:string(字符串).list(链表).Hash(哈希).set(集合)及zset(sorted set)  (有序集合).现在,我们一一来看看这五种数据类型的基本使用方法.在开始介绍之前,我们先使用刚刚引入的Redis API建立一个Redis客户端对象,有了这个客户端对象,我们才能和Redis服务端进行通信,且看下面的一行代码.我们需要事先指定好Redis服务端的IP地址和端口号,然后根据这两个信息建立一个Re

NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介

http://www.cnblogs.com/edisonchou/p/3822211.html 一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些第三方的开源类库.目前最流行的就是ServiceStack.Redis这个开源项目,其在GitHub上的下载地址为:https://github.com/ServiceStack/ServiceStack.Redis 进入下载页面,点击“D

(二)redis API的理解和使用

一.全局命令 1.keys * 查看所有键 时间复杂度为O(n),线上环境禁止使用 2.dbsize    查看键总数 3.rpush 插入一个列表类型的键值对 rpush  mylist  a b c d 4.exists key 查看键是否存在,如果存在返回1,不存在返回0 5.del  key [key ...]    删除键,返回成功删除键的个数 6.expire 设置键过期 expire  hello 10 设置键10s过期 7.ttl 返回键的剩余过期时间,大于等于0    -1(没

对微服务API服务网关的理解

目录微服务专栏地址目录1. 简介2. 什么是API网关3. 为什么需要API网关4. API网关在微服务架构体系中处于什么位置4.1 调用者眼中的API网关4.2 所处的位置5. 网关技术实现有哪些6. zuul网关工作原理是什么样的6.1 整体处理流程图6.2 请求生命周期7. 技术上如何选型1. 简介通过以下几个问题去理解微服务中的一个重要组件:API网关. 什么是API网关为什么需要API网关API网关在微服务架构体系中处于什么位置网关技术实现有哪些zuul网关工作原理是什么样的技术上如何

Redis API使用说明

List相关: LPOP key : 删除并取得LIST头部一个元素 RPOP key : 删除并取得LIST尾部一个元素 BLPOP key [key ...] timeout : 删除并取得LIST头部一个元素,如果没有就BLOCK BRPOP key [key ...] timeout : 删除并取得LIST尾部一个元素,如果没有就BLOCK LPUSH key value :在LIST头部扩展一个元素 RPUSH key value : 在LIST尾部扩展一个元素 LPUSHX key 

二 java 中使用redis API编辑基本数据类型

package com.ssm.chapter18.main; import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import

restframework框架写api中的个人理解以及碰到的问题

1.明确处理对象,在restframework的处理过程当中,如果是针对model写视图的话,queryset是要待展示的对象集,serializer_class是对每一个对象的所要使用的处理方式. class GuideWordViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): """文章索引""" queryset = GuideWord.objects.all() seriali

Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建

[TOC] Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建 Redis Java API使用(一):单机版本Redis API使用 Redis的Java API通过Jedis来进行操作,因此首先需要Jedis的第三方库,因为使用的是Maven工程,所以先给出Jedis的依赖: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactI