redis中key的命名格式一般为项目名:业务名:类型名:id值。类似于demo:admin:user:1。
使用redis存对象的类型的数据的时候一帮将对象转换为json类型的字符串进行存储。
redis中对于hash类型的值的常见的操作:
hset:为指定的key设置对应的hash值或者修改指定的key的指定的field对应的值;
hget:获取指定的key对应的filed对应的值;
hmset:批量设置指定的key对应的多个field对应的值;
hmget:批量获取指定的key对应的多个field对应的值;
hgetall:获取指定的key对应的全部的filed和filed对应的value;
hkeys:获取指定的key对应的所有的field;
hvals:获取指定的key的所有的value的值;
hsetnx:如果当前的key对应的field不存在则新增对应的field和其对应的value
hincrby:对于指定的key的数值类型的field增加指定的步长。
redis中的list类型的数据使用双向链表实现,常见的操作:
lpush:向链表的最左边添加一个元素;
rpush:向链表的最右边添加一个元素;
lpop:向链表的最左边删除一个元素,并且返回元素的值;
rpop:向链表的最右边删除一个元素,并且返回元素的值;
blpop/brpop;向链表的最左边/右边阻塞式删除一个元素,并且返回元素的值;
lrange:从最右边开始返回指定的start到end的元素值。
redis中的set类型的数据结构基于hashmap实现,常见的操作:
当集合相关的操作:
sadd:向set中添加一个元素;
srem:向set中删除一个元素;
sismember:查询指定的元素是否在指定的set中;
smembers:查询指定的set中的所有的意元素;
scard:查询指定的set中的元素的个数;
多个集合之间的操作:
sinter:查询多个集合之间的交集;
sdiff:查询多个集合之间的差集;
sunion:查询多个集合之间的并集。
redis中的sortedset底层基于hash表和跳表实现,相关的操作有:
zadd:向指定的sortedset中添加元素;
zrem:删除指定的sortedset中的元素;
zscore:获取soretedset中指定的key对应的score值;
zrank:获取sortedset中指定的key对应的排名;
zcard:获取sortedset中的元素个数;
zcount:获取指定的score范围的元素的个数;
zincrby:将sortedset中的指定的key对应的score执行自增指定的步长的操作;
zrange:获取指定的排名范围内的所有的元素;
zrangebyscore:按照score进行排名之后获取指定的score范围内的元素;
zinter/zdiff/zunion:去交集/差集/并集;
注意sortedset的排序的方式默认为降序的方式进行排序如果想要使用升序的方式进行排序的话需要再所有的命令的z之后加上rev。