摘要:序正好写应用之分布式会话这篇文章,用到了。于是就补充一些的基本常识。对象当在新建键值对的时候,新建两个对象,一个是键对象,一个是值对象。
序
正好写SpringBoot应用之分布式会话这篇文章,用到了redis。于是就补充一些redis的基本常识。
redis对象当在redis新建键值对的时候,新建两个对象,一个是键对象,一个是值对象。
键对象一般键对象都是string对象
值对象值对象根据情况分为
string对象(int、embstr、raw编码)
list对象(ziplist、linkedlist编码)
zset对象(ziplist、skiplist编码)
hash对象(ziplist、ht编码)
set对象(intset、ht编码)
redisObjectredisObject是一个更大的对象,组装引用上述数据对象,同时还增加了type、encoding等信息
对象编码每种类型的对象都至少使用了两种不同的编码,而不是固定一种编码,这样极大提高了redis的灵活性和效率。
比如list对象,在包含元素比较少的时候,redis底层使用ziplist编码实现:
1)ziplist比linkedlist更节约内存,并且在元素少的时候,在内存中以连续块方式保存,可以更可被载入内存
2)随着列表元素越来越多,使用ziplist的优势逐渐消失,对象底层将会实现从ziplist从linkedlist的转换
用type 变量名,可以查看值对象的类型
用object encoding 变量名,可以查看值对象真正存的数据的数据结构编码
常见编码int(long类型整数)
embstr(embstr编码的简单动态字符串)
raw(简单动态字符串)
ht(字典)
linkedlist(双端链表)
ziplist(压缩列表)
intset(整数集合)
skiplist(跳跃表和字典)
对象常见操作 1、Stringset/get var incr/decr var2、List
insert:lpush list a b c d,linsert list after d e delete:rpop list,lrem list 1 a update:lset list 1 g search:lrange list 0 -1,lindex list 1,llen list主要操作:
lpush、linsert、rpop、lrem、lset、lrange、lindex
3、Setinsert:sadd users linda persia jack delete:srem users linda update: search:smembers users,scard users,spop,sismember users casesar sdiff sa sb sinter sa sb sunion sa sb主要操作
sadd,srem,smembers,scard,spop
sdiff,sinter,sunion
insert:zadd scores 70 linda 100 persia 90 jack update:zadd scores 88 linda,zincrby scores -3 persia delete:zrem scores linda,zremrangebyscore scores (60 80,zremrangebyrank scores 0 1 search: zrange scores 0 -1 withscores zrevrange scores 0 -1 withscores zrangebyscore scores (10 +inf zcount scores (90 100 zcard scores zscore scores persia zrank scores persia zrevrank scores persia5、map
insert:hset kv t1 linda,hsetnx kv t4 houhou,hmset kv t2 hah t3 xixi update:hset kv t1 linda1,hincrby kv t5 1 delete:hdel kv t1 search:hget kv t1 hmget kv t2 t3 hkeys kv hvals kv hlen kv hexists kv t6对键的操作:
del key1 expire key2 900 rename key3 key33 type key4 object encoding key5
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/36157.html
摘要:持久化到中反向代理的负载均衡基于的集群搭建如何实现从中订阅消息转发到客户端的扩展是阻塞式,使用订阅发布模式时,会导致整个进程进入阻塞。缓存是用于解决高并发场景下系统的性能及稳定性问题的银弹。 showImg(https://segmentfault.com/img/bVYE6k?w=900&h=385); Redis 是由意大利程序员 Salvatore Sanfilippo(昵称:a...
摘要:持久化到中反向代理的负载均衡基于的集群搭建如何实现从中订阅消息转发到客户端的扩展是阻塞式,使用订阅发布模式时,会导致整个进程进入阻塞。缓存是用于解决高并发场景下系统的性能及稳定性问题的银弹。 showImg(https://segmentfault.com/img/bVYE6k?w=900&h=385); Redis 是由意大利程序员 Salvatore Sanfilippo(昵称:a...
Redis文档也可以在redis-doc github存储库中使用原始(计算机友好的)格式。 使用redis编程 Redis实现的完整的命令列表,以及每个命令的完整文档 Pipelining:学习如何同时发送多个命令,节省往返时间 Redis Pub/Sub:Redis是一个快速稳定的发布/订阅消息系统! Redis Lua脚本:Redis Lua脚本特性文档 Debugging Lua 脚本:...
摘要:搭建单机服务简介是完全开源免费的,遵守协议,是一个高性能的数据库。丰富的数据类型支持二进制案例的及数据类型操作。丰富的特性还支持通知过期等等特性。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。 CentOs7.3 搭建 Redis-4.0.1 单机服务 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数...
阅读 2022·2021-11-23 09:51
阅读 3525·2021-11-11 10:57
阅读 1204·2021-10-09 09:43
阅读 2225·2021-09-29 09:35
阅读 1802·2019-08-30 15:54
阅读 1680·2019-08-30 15:44
阅读 3031·2019-08-30 13:20
阅读 1584·2019-08-30 11:19