redis的五大数据结构
首先了解redis最基础的命令
select:命令切换数据库,从0开始,共有16个库
dbsize:查看当前数据库key的数量
flushdb:清空当前库
flushall:通杀全部库
Redis的五大数据结构
-
String
String是Redis最基本的数据类型,可以理解成Memcached一摸一样的类型,一个key对应一个value。
String类型是二进制安全的,意思是redis的String可以包含任何数据
String类型是redis最基本的数据类型,一个redis中字符串value最多可以是512M
-
hash
redis的hash是一个键值对的集合,是一个String类型的field个value的映射表,hash热别适合用于存储对象,类似于java里的Map<String,Object>
-
set
redis的set是String的无序集合,它是通过HashTable实现的
-
zset
redis中zset和set一样也是String类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复
-
list
简单的字符串列表,按插入顺序排序,底层实际是链表
可以在Http://redisdoc.com/网站获取redis常见数据类型操作命令
Redis键(keys)常用的命令
keys * :列出当前库的所有key
exists key的名字:判断某个key是否存在
move key db:将某个key移至某个db
expire key 秒钟:为给定的key设置过期时间
ttl key:查看还有多少秒过期,-1表示永不过期,-2表示已经过期
type key:查看key是什么类型
Redis字符串(String):
set、get、del、append、strlen(长度)、incr(+1)、decr(-1)、incrby(+n)、decrby(-n)一定要是数字才可以加减
getrange:获取指定区间范围的值,类似于between…and
setrange:设置指定区间范围的值,格式:setrange key值 具体值
setx(set with expire)键值对:设置过期时间
setnx(set if not exist):不存在设置键值,存在不会覆盖
mset 、 mget 、msetnx 合并
Redis列表(List)
lpush(左建立) / rpush(右建立) / lrange(范围截取)
lpop (左删除) / rpop(右删除)
lindx,按索引下标获得元素(从上到下)
llen:长度
lrem key:删n个value
ltrim key 开始index 结束index:截取指定范围的值后再赋值给key
rpoplpush 源列表 目的列表
lset key indext value:将key换成value
linsert key before / after 值1 值2:把值2插到值1的前或后
总结:它是一个字符串链表,left、right都可以插入添加
如果键不存在,创建新的链表,若已经存在,新增内容,如果值全部移除,对应的键也消失
链表的操作无论是头和尾效率都极高,但假如对中间元素进行操作,效率很一般
Redis集合(set)
sadd(添加创建) / smembers(遍历总) / sismember(遍历个)------> 不会添加重复值
scard:获取集合里的元素个数
srem key value :删除集合中元素
srandmember key:某个数值(随机出几个数)
spop key:随机出栈
smove key1 key2:在key1里的某个值,作用是将key1的某个值,作用是将k1里的某个值赋予key2
数学集合类:
差集:sdiff key1 key2:在第一个set里不在后面任意一个set里
交集:sinter key1 key2
并集:sunion key1 key2
Redis哈希(hash)
kv模式不变,但v是一个键值对
hset:设定
hget:得到
hmset:多设定
hmget:多得到
hgetall:全得到,键值对全得到
hlen:长度
hexists key :在key里面的某个值的key
hkeys:所有的key
hvals:所有的val
hincrby:加整数
hincrbyfloat:加小数
hsetnx:不存在加进去
Redis有序集合(zset)[scorted set]
在set基础上,加一个score值,之前set是k1 v1 v2 v3,现在zset是k1 score1 v1 score2 v2
zadd:添加
zrange:遍历v
withscores:遍历v和score
zrangebyscore key 开始score 结束score:返回开始和结束score间的value
1、withscores
2、( 不包括
3、limit作用是返回限制
limit 开始下标步 多少步
limit 2 2;----->从2截取2个
zrem key某个score下对应的value值,作用是删除元素
zcard/zcount key score区间
zrank key values:作用是获取下标值
zscore key 对应值 获得分数
zrevrank key values值,作用是逆序获得小标值
zrevrangebyscore key 结束score 开始score