基本数据类型和基本命令
//字符串-最大长度可达512兆
set key value
get key
//对象
hmset key value1…
hgetall key
//数组
lpush key value
lrange key start end(-1全部)
//无序set
sadd key value
smembers key
//有序set
zadd key score value
zrangebyscore key start end
事务
多个命令顺序执行
mutil
cmd1…
cmd2…
exec
Redis 生存时间
EXPRIE/EXPRIEAT 设置过期时间
PERSISIT 持久化
TTL 距离过期还剩余的时间
GET SET 都会把key的过期时间置为永久
Redis 排序
数字
按照键值升序或者降序
sort key asc(升序)
sort key desc(降序)
字符串
sort key alpha asc
sort key alpha desc
限制条数
sort key limit [start] [rows] desc
根据外部key的权重排序
LPUSH uid 1
SET user_name_1 admin
SET user_level_1 9999
LPUSH uid 2
SET user_name_2 king
SET user_level_2 800
LPUSH uid 3
SET user_name_3 queen
SET user_level_3 600
LPUSH uid 4
SET user_name_4 jack
SET user_level_4 300
LPUSH uid 5
SET user_name_5 rose
SET user_level_5 860
//占位符
SORT uid BY user_level_*
//返回user_name
sort uid by user_level_* asc get user_name_*
//返回排序后的uid+user_name
sort uid by user_level_* asc get # get user_name_*
HMSET user_info_1 username admin level 1000
HMSET user_info_2 username king level 999
HMSET user_info_3 username king1 level 77
HMSET user_info_4 username king2 level 90
sort uid by user_info_*->level get user_info_*->username
RPUSH testSort4 1 2 5 8 9 20
RPUSH testSort4 43 56 90 120
//缓存结果
SORT testSort4 DESC STORE sortRes4
lrange sortRes4 0 -1
注意:
SORT命令的时间复杂度O(n+mlogm),n表示要排序的列表或者集合中的元素的个数,m表示要返回元素的个数
1》尽可能减少带排序中键的数量(使n尽可能的小)
2》使用LIMIT参数限制获取元素的个数(使m尽可能小)
3》如果要排序的数据量比较大,尽可能通过STORE缓存结果