〇、常用命令

select <num> 选择库0~15 默认0号库

key * 查看当前库所有键(可以接正则表达式)

exists <key>

type <key>

del <key>

expire <key> <seconds>  为键设置过期时间,单位秒。

ttl <key> 查看还有多少秒过期 (-1表示永不过期 -2已过期)

dbsize 查看当前数据库key的数量

flushdb 清空当前库 (flushall 清空全部库)

一、String

String是redis最基本的类型,单个string最多512M。

get <key>                                  mget <key1> <key2>...  //设置多个

set <key> <value>                    mset <key1> <value1> <key2> <value2>...  //多个

append <key> <value>

strlen <key>

setnx <key> <value>                 mesetnx   <key1> <value1> <key2> <value2>   //全部不存在时才生效

------------set if not exist

incr/decr <key>   (纯数字字符串)增长/减小 1(不存在先初始化0)

incrby/decrby <key> <value> 对应键的值 增/减 步长

getrange <key> <起始位置,从0,包含><结束位置,包含> 取子串  -------负数表示倒数第几个

setrange <key> <起始位置> <value> 用value覆写key所存储的字符串值,从起始位置开始

setex <key> <过期时间(秒)> <value> 设置键值跟过期时间(set后过期时间会刷新)

getset <key> <value> 以新换旧

二、list  双向链表。。。值在键在,值光键亡。

lpush/rpush <key> <value1> <value2>... 从左边/右边插入一个或者多个值

lpop/rpop <key> 从左/右弹出一个值

lrange <key> <start> <end> 返回链表中start到end的元素

rpoplpush <key1> <key2> 从key1列表右弹出一个值插入到key2左处。

llen <key>  元素个数

lrem <key> <count> <value> 从链表头删除value值,删除count的绝对值个value后结束 count>0从头开始 <0从尾删除 =0全部删除

linsert <key> [before|after] <search> <value> 在search 前/后插入value 为查到search插入失败。

三、Set 无序集合 。。人在塔在。人去楼空

sadd <key> <value> <value>..

smembers <key>             取出集合中所有元素

sismember <key> <value>   判断集合中是否含有value 有返回1 没有返回0

srem <key> <value1> <value2>...         删除

spop <key> 返回并删除集合中一个随机元素

srandmember <key> <n> 随机返回n个集合中元素

scard <key> 返回集合中元素个数

sinter <key1> <key2> 交集

sunion <key1> <key2> 并集

sdiff <key1> <key2> 差集

(上面三个)store <res> <key1> <key2> 求两个集合的(交并差)存在res里

四、Hash

Redis hash 是一个string类型的field和value的映射表,它的添加、删除操作都是O(1)(平均)。hash特别适用于存储对象,将一个对象存储在hash类型中会占用更少的内存,并且可以方便的存取整个对象。

  配置: hash_max_zipmap_entries 64 #配置字段最多64个

      hash_max_zipmap_value 512 #配置value最大为512字节

hset <key> <field> <value> 给key集合中的 field键对应的值赋值value

hsetnx <key> <field> <value>

hmset <key> <field1> <value1>  <field2> <value2>  批量赋值

hget <key> <field> 取指定key 指定field中的值

hmget <key> <field1> <field2> 批量取值

hexists <key> <field> 查看指定field是否存在

hlen <key> 返回field数量

hdel <key> <field> 删除指定field

hkeys <key>            hvals<key>     hgetall<key>获取某个hash中全部的field/value/field及value

hincrby <key> <field> <x> 增加x

五、zset

redis 中zset与普通set非常相似,是一个没有重复元素的字符串集合。不同之处是zset的每个成员都关联了一个(double)score 用来排序,在value被创建或修改时可以指定其值。底层实现是skip list 和 hashtable的混合体。

当元素被添加到集合中时,一个元素到score的映射被添加到hash table中,所以给定一个元素获取score的开销是O(1)。另一个score到元素的映射被添加的skip list,并按照score排序,所以就可以有序地获取集合中的元素。添加、删除操作开销都是O(logN)和skip list的开销一致,redis的skip list 实现是双向链表,这样就可以逆序从尾部去元素。sorted set最经常使用方式应该就是作为索引来使用,我们可以把要排序的字段作为score存储,对象的ID当元素存储。

zadd <key> <score1> <value1>

zrange <key> <start> <stop> 把排序后的结果返回 (默认score升序)

z(rev)rank <key> <value> 查询对饮value的排名,(默认升序,rev按降序排列)

zrem <key> <value>... 删除

zremrangebyscore <key> min max  删除 score属于 [min,max]

zremrangebyrank <key>start end 删除 名次属于[start,end]

zcard  <key> 返回集合中元素的个数

zcount <key> <min> <max> 返回score在区间[min,max]内的元素个数

Redis 基本数据类型以及相应操作的更多相关文章

  1. Redis系列(二):Redis的数据类型及命令操作

    原文链接(转载请注明出处):Redis系列(二):Redis的数据类型及命令操作 Redis 中常用命令 Redis 官方的文档是英文版的,当然网上也有大量的中文翻译版,例如:Redis 命令参考.这 ...

  2. Redis五大数据类型的常用操作

    在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...

  3. Redis学习2:Redis的数据类型和常用操作

    1.常用命令 命令 说明 返回值 时间复杂度 keys */[pattern] 遍历所有符合条件的key,一般不在生产环境使用 所有key O(n) dbsize 计算key的总数 n O(1) ex ...

  4. Redis 五大数据类型及常用操作

    # 更详细的操作命令请查看 => http://redisdoc.com/ 1: KEY ( 键值 )  => 常见操作 2: String ( 字符串 ), 最大支持 512M 2.1: ...

  5. redis的数据类型(一) key操作

      redis是一个key-value形式的数据缓存,因此包括key和value. 一.key的说明 1.redis的key   Redis的key是字符串类型,但是key中不能包括边界字符,由于ke ...

  6. Redis的数据类型及相关操作命令

    redis 基础内容 —— redis的数据类型及相关操作的Linux命令.所谓大厦千层基础承载,希望大家认真学习这一讲: 一.redis 的五大数据类型: 1.String(字符串): 2.List ...

  7. Redis学习笔记(二) ---- PHP操作Redis各数据类型

    Redis 一.使用PHP操作Redis存储系统中的各类数据类型方法 1.String(字符串)操作 <?php // 1. 实例化 $redis = new Redis; // 2. 连接 r ...

  8. Redis(二) 数据类型操作指令以及对应的RedisTemplate方法

    1.Redis key值操作以及RedisTemplate对应的API 本文默认使用RedisTemplate,关于RedisTemplate和StringRedisTemplate的区别如下 Red ...

  9. Redis常用数据类型以及操作

    Redis常用数据类型以及操作 目录 Redis常用数据类型以及操作 一.String数据类型 1. SET/GET/APPEND/STRLEN 2. INCR/DECR/INCRBY/DECRBY ...

随机推荐

  1. LayIM聊天框全屏根据浏览器高宽自适应

    个人博客 地址:http://www.wenhaofan.com/article/20190410190628 问题 由于LayIM没有处理聊天框在全屏状态下根据浏览器缩放处理高宽,所以会导致在浏览器 ...

  2. CentOS MySQL自动备份shell脚本

    先执行  vim/mysqlBack/back.sh 然后添加以下内容 ## 记录日志 # 以下配置信息请自己修改 mysql_user="root" #MySQL备份用户 mys ...

  3. python 方法和函数

    代码 def func(): pass class Foo(object): def func(self): pass # 执行方式一 # obj = Foo() # obj.func() # 方法 ...

  4. 2_abstractions

    2. Up and down the level of abstraction In this chapter, we'll travel up and down the level of abstr ...

  5. APP和web设计区别

    1.web在给定了核心功能后,还可以往页面再添加小需求如banner.快捷工具条.分页等. APP界面设计时,则偏向精简,尽可能明显的展示核心功能. 2.APP中需要考虑ISO和Andriod两种交互 ...

  6. MapReduce第一个项目 WordCount

    参考自林子雨大数据教学:     http://dblab.xmu.edu.cn/blog/hadoop-build-project-using-eclipse/ 创建一个文件夹:放入一个文本文件:填 ...

  7. vscode设置成中文

    打开 VS Code Ctrl + Shift +p打开搜索框 搜索框内输入Configure Display Language 回车 修改代码中“locale”后面引号内内容为zh-CH 重新启动V ...

  8. linux 安装 setuptools

    wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar ...

  9. Jmeter-基础实战

    一.测试需求:测试20个用户访问web网站在负载达到30QPS时的平均响应时间 QPS:Query Per Second 每秒查询率.是一台查询服务器每秒能够处理的查询次数.在因特网上,作为域名系统服 ...

  10. 巨杉TechDay回顾 | WARNING!您参加的数据库沙龙热度已爆表……

    自从2008年“大数据”这一概念被首次提出以来,在过去这10年中,几乎各行各业都或多或少受到了这一概念的影响.与此同时,在AI.云计算.物联网.区块链等新兴技术快速发展的今天,数据库己经成为了决定所有 ...