Redis基本数据类型

148 阅读1分钟

5种基本数据类型

string(字符串)

内部是一个数组,长度小于1M时加倍扩容,超过1M时一次扩1M 最大512M

设置:set 'key' 'values'
读取:get 'key'
查看是否存在: exists 'key'
删除: del 'key'
设置过期时间: expire 'key' 'time'

如果值为数字那么可以进行自增操作

incr 'key'

自增有最大的范围

list(列表)

相当于linkedList 为双向链表

右进左出(队列):
入队:rpush 'key' 'value' 'value' 'value' ...
查看长度: llen 'key'
出队: lpop 'key'
右进右出(栈):
入队:rpush 'key' 'value' 'value' 'value' ...
出队: rpop 'key'
-------------------------------------------------------
get:lindex 'key' 'index'
保留:ltrim 'key' 'start_index' 'end_index' 
	index 可以为负数表示倒数


hash(字典)

相当于HashMap 数组+链表

添加:hset 'key' 'v_key' 'v_value'
key value 输出:hgetall 'key'
长度: hlen 'key'
获取某个值:hget 'key' 'v_key'
批量设置: hmset 'key' 'v_key' 'v_value' 'v_key' 'v_value' ...

自增: hincrby 和incr使用方法相似

set(集合)

相当于HashSet 无序唯一

添加:sadd 'key' 'value'
获取全部: smembers 'key'
查询某个是否存在: sismember 'key' 'value'

zset(有序集合)

set 但可以设置score 代表权重 可以以此来排序

添加:zadd 'key' 'score' 'value'
排序列出:zrange 'key' 'start' 'end'
逆序列出: zrevrang 'key' 'start' 'end'
个数: zcard 'key'
获取指定value的score:zscore 'key' 'value'  存在精度问题
排名:zrank 'key' 'value'
根据分值遍历同时返回值: zrangebyscore 'key' 'start' 'end'   可以使用inf 表示无穷大(infinite)
删除:zrem 'key' 'value'