Redis 基本数据类型以及相应操作
〇、常用命令
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 基本数据类型以及相应操作的更多相关文章
- Redis系列(二):Redis的数据类型及命令操作
原文链接(转载请注明出处):Redis系列(二):Redis的数据类型及命令操作 Redis 中常用命令 Redis 官方的文档是英文版的,当然网上也有大量的中文翻译版,例如:Redis 命令参考.这 ...
- Redis五大数据类型的常用操作
在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...
- Redis学习2:Redis的数据类型和常用操作
1.常用命令 命令 说明 返回值 时间复杂度 keys */[pattern] 遍历所有符合条件的key,一般不在生产环境使用 所有key O(n) dbsize 计算key的总数 n O(1) ex ...
- Redis 五大数据类型及常用操作
# 更详细的操作命令请查看 => http://redisdoc.com/ 1: KEY ( 键值 ) => 常见操作 2: String ( 字符串 ), 最大支持 512M 2.1: ...
- redis的数据类型(一) key操作
redis是一个key-value形式的数据缓存,因此包括key和value. 一.key的说明 1.redis的key Redis的key是字符串类型,但是key中不能包括边界字符,由于ke ...
- Redis的数据类型及相关操作命令
redis 基础内容 —— redis的数据类型及相关操作的Linux命令.所谓大厦千层基础承载,希望大家认真学习这一讲: 一.redis 的五大数据类型: 1.String(字符串): 2.List ...
- Redis学习笔记(二) ---- PHP操作Redis各数据类型
Redis 一.使用PHP操作Redis存储系统中的各类数据类型方法 1.String(字符串)操作 <?php // 1. 实例化 $redis = new Redis; // 2. 连接 r ...
- Redis(二) 数据类型操作指令以及对应的RedisTemplate方法
1.Redis key值操作以及RedisTemplate对应的API 本文默认使用RedisTemplate,关于RedisTemplate和StringRedisTemplate的区别如下 Red ...
- Redis常用数据类型以及操作
Redis常用数据类型以及操作 目录 Redis常用数据类型以及操作 一.String数据类型 1. SET/GET/APPEND/STRLEN 2. INCR/DECR/INCRBY/DECRBY ...
随机推荐
- [POI2010] GIL-Guilds - 二分图染色,DFS
给一张无向图,要求你用黑白灰给点染色,且满足对于任意一个黑点,至少有一个白点和他相邻:对于任意一个白点,至少有一个黑点与他相邻,对于任意一个灰点,至少同时有一个黑点和白点和灰点与他相邻,问能否成功 S ...
- Linux shell unzip和tar 批量解压文件
#!/bin/sh UNTAR="tar -xvf " #unzip all zip files function unzip_all_file() { for i in *.zi ...
- Linux C语言 文件操作
打开函数 fopen 的原型如下. FILE * fopen(char *filename, char *mode); 返回值:打开成功,返回该文件对应的 FILE 类型的指针:打开失败,返回 NUL ...
- H5_0010:JS动态创建CSS,并向CSS中传入参数值
1,在html中定义style 2,js中创建css,并添加进入head标签style中 !function(e, t, i) { n.classList && n.classList ...
- vue实现网页简单计算器实例代码
效果: 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- [CF1304E] 1-Trees and Queries - LCA
由于可以走重边,所以任意一条路径长 + 2 仍然对应至少一条合法路径 很显然我们有 \(3\) 种基本路径 不经过 \((x,y)\) 经过 \(x \to y\) 经过 \(y \to x\) 假设 ...
- C语言-const再理解(转)
有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定.例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小.为了满足这一要求,可以使用const关键字对变量加以限定: co ...
- [JSOI2010]快递服务
Description Luogu4046 BZOJ1820 Solution 暴力DP很好想,\(f[i][j][k][l]\)表示处理到第\(i\)个任务,三个人在\(i,j,k\)的方案数.显然 ...
- Opencv之像素值的获取
灰度图像${\rm{M}} \times {\rm{N}}$的像素矩阵值为0~255,像素值越大越亮.${{\rm{I}}_{{\rm{i}}{\rm{j}}}}$,i表示行的位置,j 表示列的位置即 ...
- AntDesign(React)学习-4 登录页面提交数据简单实现
github代码:https://github.com/zhaogaojian/jgdemo 全国肺炎,过节期间没地方去在家学习antd. 一.感觉antd pro项目太庞大了,可以学习下结构和代码风 ...