
Redis
游戏猫
多年游戏开发经验,在这里分享经验和心得
展开
-
redis有序集合相关命令
一、概要redis的有序集合可以用来支持超大规模的排序,底层采用了跳表或ZIP_LIST来实现。二、相关接口示例127.0.0.1:6379> ZADD test 100 a(integer) 1127.0.0.1:6379> ZADD test 200 b(integer) 1127.0.0.1:6379> ZADD test 300 c(integer) 1127.0.0.1:6379> ZINCRBY test 200 b"400"127.0.0.1:63原创 2020-07-27 00:46:06 · 137 阅读 · 0 评论 -
Redis集合相关命令
一、概要redis中值可以是一个集合,集合的底层实现是INT_SET或HASH_TABLE。redis的集合命令包括往集合里添加、删除元素,对集合做差集、交集、并集操作。二、代码示例127.0.0.1:6379> HSET test a 1(integer) 1127.0.0.1:6379> HGET test a"1"127.0.0.1:6379> HSET test a 1(integer) 1127.0.0.1:6379> HSET test b 2(int原创 2020-07-26 14:26:45 · 199 阅读 · 0 评论 -
Redis哈希表相关指令
一、概要redis里值可以是一个哈希表,哈希表底层实现可以是一个HASH_TABLE或ZIP_LIST。redis命令可以创建、删除哈希表,单插入、多插入、单删除、多删除哈希表的键值对,也可以获取哈希表、哈希表的所有键、哈希表的所有值。二、代码示例127.0.0.1:6379> HSET test a 1(integer) 1127.0.0.1:6379> HGET test a"1"127.0.0.1:6379> HSET test a 1(integer) 1127.原创 2020-07-26 14:09:58 · 203 阅读 · 0 评论 -
Redis列表相关指令
一、概要Redis列表采用LINKEDLIST或ZIPLIST实现,支持从左右两端压入或弹出元素,也支持查找和区间缩减、按值删除操作,但不支持按索引删除或按范围删除。二、使用示例127.0.0.1:6379> RPUSH list 1 2 3 4 5(integer) 5127.0.0.1:6379> RPOP list"5"127.0.0.1:6379> LPUSH list 0 -1(integer) 6127.0.0.1:6379> LPOP list"-1原创 2020-07-26 01:34:24 · 128 阅读 · 0 评论 -
Redis字符串相关命令
一、概要Redis中值为字符串时,可以对字符串做追加、范围修改、范围获取、当成数组做加减等。二、使用示例127.0.0.1:6379> SET test 1OK127.0.0.1:6379> INCR test(integer) 2127.0.0.1:6379> INCRBY test 10(integer) 12127.0.0.1:6379> DECR test(integer) 11127.0.0.1:6379> DECRBY test 5(int原创 2020-07-26 00:32:16 · 129 阅读 · 0 评论 -
redis为什么采用跳表而不是红黑树
在做范围查找的时候,平衡树比skiplist操作要复杂。平衡树需要以中序遍历的顺序继续寻找其它不超过大值的节点。skiplist进行范围查找非常简单,只需要在找到小值之后,对第1层链表进行若干步的遍历就可以实现。平衡树的插入和删除操作可能引发子树的调整,逻辑复杂,而skiplist的插入和删除只需要修改相邻节点的指针,操作简单又快速。skiplist需要更少的指针内存。平均每个节点包含1...原创 2020-03-08 16:13:56 · 883 阅读 · 0 评论 -
Redis知识点
一、Redis数据类型:String:最大512M,内部采用了sdsHash:哈希表,List:链表,ziplist或linkedlistSet:集合,内使用intset或hashtableZSet:有序集合,内部使用ziplist或skiplist二、Redis持久化RDB:全存,会 fork当前进程,采用写时复制技术避免耗时过高,把进程数据生成 RDB 文件;AOF:把操作存到...原创 2020-03-08 15:10:22 · 98 阅读 · 0 评论