redis 基本指令以及数据类型

redis的数据类型:

String(字符串)

string是redis最基本的类型,一个key对应一个value

string类型是二进制安全的。意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。

一个redis中字符串value最多可以是512M

Hash(哈希,类似java里的Map)

redis hash 是一个键值对集合

redis hash 是一个string类型的field 和 value 的映射表,hash特别适合用于存储对象,类似Java里面的MAP<String,Object>

List (列表)

redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部或尾部,它的底层实际是个链表

Set (集合)

redis 的Set 是string类型的无序集合,它是通过HashTable实现的

Zset (sorted set:有序集合)

redis zset 和set 一样也是string类型元素集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。

redis正是通过分数来为集合中的成员进行从小到大的 排序。zset的成员是唯一的,但分数(score)却可以重复

redis常见数据类型操作命令:http://redisdoc.com/

redis的基本指令

redis是单进程的默认16个数据库,类似于数组,下标从0开始,一直到15,初始默认使用0号数据库。

redis 基本指令以及数据类型

 select命令 可以切换数据库:

redis 基本指令以及数据类型

 数据库之间不互通,例如我在0号库设置了一个键值对,切换到其他库之后并不适用:

redis 基本指令以及数据类型

 Dbsize 查看当前数据库的key的数量:

redis 基本指令以及数据类型

keys * 查看所有的key:

redis 基本指令以及数据类型

keys k? 查看所有以k为开头并且键名长度为2的key:(一个?占一个位置

 redis 基本指令以及数据类型

如果库中有键名为k22的key,则使用keys k?则找不到这条,需要使用k??:

redis 基本指令以及数据类型

 flushdb:清空当前库

redis 基本指令以及数据类型

fflushall:通杀全部库

redis 基本指令以及数据类型

 统一的密码管理,16个库都是同样密码,要么都能进去,要么都进不去。

redis索引都是从0开始

redis 键(key)的基本操作指令:

keys * (查看当前库中所有的键)

exists 键名  (判断某个key是否存在),返回1表示key存在,返回0表示key不存在

redis 基本指令以及数据类型

 move key db (将某个key移动到某个db)

redis 基本指令以及数据类型

ttl key 查看还有多少秒过期,-1 表示永不过期,-2表示已过期

redis 基本指令以及数据类型

 expire key 秒钟: 为给定的key设置过期时间

我们给k3设置10秒的存活时间,10秒过去后k3将会被自动删除

redis 基本指令以及数据类型

type key 查看你的key是什么类型

redis 基本指令以及数据类型

 del key 删除一个key

redis 基本指令以及数据类型

 persist key 移除key的过期时间,key将长久保持

redis 基本指令以及数据类型

 redis string 基本操作指令:

redis string 是单键单值的

set/get/del/append/strlen  (设置/获取值/删除/给value尾部增加值/获取value长度)

redis 基本指令以及数据类型

 Incr/decr/incrby/decrby  (自增/自减/相加/相减)一定要是数字才能进行加减

redis 基本指令以及数据类型

 redis 基本指令以及数据类型

 redis 基本指令以及数据类型

 redis 基本指令以及数据类型

getrange/setrange (获取指定区间范围内的值,类似between ... and 的关系/设置指定区间范围内的值,格式是setrange key  值 value) 0到-1表示全部

redis 基本指令以及数据类型

 redis 基本指令以及数据类型

setex(set with expire)键秒值(设置key的时候顺便设置key的存活时间)/setnx(set if not exist,如果key不存在就创建,否则就不创建)

redis 基本指令以及数据类型

 redis 基本指令以及数据类型

mset/mget/msetnx(一次创建多个键值对/一次获取多个值/如果每个key都不存在,则创建,否则不创建)

redis 基本指令以及数据类型

redis 基本指令以及数据类型

redis 基本指令以及数据类型

getset(先get再set)

redis 基本指令以及数据类型

 redis 列表 基本操作指令:

单键多值

lpush/rpush/lrange (左添加 每一个value都添加到上一个value的左边 /右添加 每一个value都添加到上一个value的右边 /读取)

redis 基本指令以及数据类型

 redis 基本指令以及数据类型

 lpop/rpop (从左到右依次把value弹出/从右到左依次把value弹出)

redis 基本指令以及数据类型

 redis 基本指令以及数据类型

lindex,按照索引下标获得元素

redis 基本指令以及数据类型

 llen 获得key对应的value的个数:

redis 基本指令以及数据类型

 lrem key :

redis 基本指令以及数据类型

 ltrim  key  开始index   结束index ,截取指定范围的值后再赋值给key:

redis 基本指令以及数据类型

 rpoplpush 源列表 目的列表 (从源列表中rpop一个值然后lpush给目的列表):

redis 基本指令以及数据类型

 lset key index value (把列表中某一个索引的值设置为另一个值)

redis 基本指令以及数据类型

 linsert key before/after 值1 值2  给列表里的值1 前面/后面 插入值2

redis 基本指令以及数据类型

list性能总结:

它是一个字符串链表,left,right都可以插入添加;

如果键不存在,创建新的链表;

如果键已存在,新增内容;

如果值全移除,对应的键也就消失了。

链表的操作无论是头或者尾效率都极高,但假如是对中间元素进行操作,效率就很低了。

redis集合(set):

单键多值

sadd/smembers/sismember (添加一个集合 集合名 值 /显示集合所有的值/判断一个值是否在集合里面)

redis 基本指令以及数据类型

 scard (获取集合里面的元素个数)

redis 基本指令以及数据类型

 srem key value 删除集合中的元素

redis 基本指令以及数据类型

 srandmember key 某个整数(随机出几个数,不输入的话,默认出一个数)

redis 基本指令以及数据类型

 spop key (随机出栈)

redis 基本指令以及数据类型

 redis 基本指令以及数据类型

 smove key1 key2 在key1里某个值 (作用是将key1里的某个值移动到key2)

redis 基本指令以及数据类型

 数学集合类(差集:sdiff;交集:sinter;并集:sunion)

redis 基本指令以及数据类型

 sdiff 类似与求01集合与02集合的不同元素,01集合在前,02集合在后,则求出来的是01集合中与02集合不同的元素,反之亦然。

redis 基本指令以及数据类型

 sinter求集合之间的交集,即求出多个集合中相同的元素。

redis 基本指令以及数据类型

 sunion 求集合之间的并集,如上例,即求出set01集合与set02集合中所有的元素并不重复的输出。

redis哈希(Hash):

kv模式不变,但v是一个键值对:

hset/hget/hmset/hmget/hgetall/hdel

redis 基本指令以及数据类型

redis 基本指令以及数据类型

redis 基本指令以及数据类型

redis 基本指令以及数据类型

 redis 基本指令以及数据类型

 redis 基本指令以及数据类型

hlen 获得哈希的键值对个数

 redis 基本指令以及数据类型

 hexists key 判断在key里面的某个值的key有没有,有则输出1,没有则返回0:

redis 基本指令以及数据类型

 hkeys/hvals (获得一个哈希key中所有的key/values):

redis 基本指令以及数据类型

 hincrby N/hincrbyfloat N(使哈希key中的一个key自增N)

redis 基本指令以及数据类型

 redis 基本指令以及数据类型

 hsetnx key (输入一个哈希key,如果不存在,则成功,返回1,如果已经存在,则失败,返回0):

redis 基本指令以及数据类型

 有序集合Zset(sorted set)

它就是在set的基础上加一个score值。

之前set是k1 v1  v2 v3

现在Zset就是k1 score1 v1 score2 v2。。。

然后就是它的一些基本指令:

zadd/zrange

redis 基本指令以及数据类型

zrangebyscore key 开始score 结束score

redis 基本指令以及数据类型

 zrem key 某score下对应的value值,作用是 删除元素redis 基本指令以及数据类型

 zcard/zcount key score区间 /zrank key values值

 redis 基本指令以及数据类型

 zrevrank key values值 作用是逆序获得下标值

redis 基本指令以及数据类型

 zrevrange key 开始序列 结束序列 (把有序集合逆序输出):

redis 基本指令以及数据类型

 zrevrangebyscore key 开始score 结束score(作用是将score对应的value逆序输出):

redis 基本指令以及数据类型

相关推荐