学习
实践
活动
工具
TVP
写文章
专栏首页MyJava总结(七) redis

总结(七) redis

模块一:基础

redis 是基于内存的KV非关系型数据库。

redis基本数据类型有:String,list,hash,set,zset。

redis的使用场景有:缓存,计数器(String自增自减)。

  • redis启动过程

先去/usr/local/bin打开redis-server

然后启动redis-cli(redis的客户端)就可以了

默认进入0号数据库。

  • redis为什么快

基于内存

数据结构简单

采用单线程

多路复用IO

  • 基本的数据结构

String:

普通的KV字符串,一个k对应一个v。

set me syyyj
get me

结果输出了syyyj。

List:

简单的字符串集合。按插入顺序来排序,可头插(L)可尾插(R)

rpush me syyyj
//输出1
rpush me syj
//输出2
rpush me syjjj
//输出3
rrange me
//输出
//"syyyj"
//"syj"
//"syjjj"

Hash:

映射表操作

hmset set okk me nb we upup
hget okk me
//输出nb
hget okk we
//输出 upup

出现hash冲突的解决方式和hashmap一样,用拉链法解决hash冲突,不过没有红黑树。

set:

String类型的无序集合。

集合是用hash来实现的,所以增删查都是O(1)。

使用sadd的时候,返回1是成功,返回0是已存在。

sadd key value;
//输出1
sadd key value2;
//输出1
sadd key value;
//输出0
smembers key:
//输出
//"value"
//"value2"

Zset:

关于String的有序集合,底层使用跳表来实现

同时不可以重复。

运用每个项的得分来排序,从小到大排序。

集合是用hash来实现的,所以增删查都是O(1)。

使用zadd的时候,返回1是成功,返回0是已存在。

zadd key score member 基本示范。
zadd vv 0 me
zadd vv 1 me2
zadd vv 2 me3
ZRANGE vv 0 1000

模块二:事务

redis的事务是非原子性的,所以也不会回滚,如果要实现回滚,要用命令watch。

  • redis的事务基本命令

multi 创建事务

exec 启动事务

discard 关闭事务

watch < KEY > 监听key

unwach 取消所有监听

  • 如何实现事务?

使用watch命令监听某个key,如果事务中使用这个key,同时监听到这个key发生变化,事务则会发送回滚。如果key没有变化,则继续下去,同时这个watch会没掉。所以watch监听只会用一次。

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1m9564neirmdi

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.syjhxy.ltd/复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Redis技术知识总结之七——Redis多路复用机制

    redis 是一个单线程却性能非常好的内存数据库, 主要用来作为缓存系统。 redis 采用网络IO多路复用技术来保证在多连接的时候, 系统的高吞吐量。 为什...

    剑影啸清寒
  • redis | 七、redis之Hash

    Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

    用户9965345
  • redis学习(七)

    Map集合,key-map! 时候这个值是一个map集合! 本质和String类型没有太大区别,还是一个简单的 key-vlaue!

    崔笑颜
  • (七)Hive总结

    Hive 和数据库除了拥有类似的查询语言,再无类似之处。 1)数据存储位置 Hive 存储在 HDFS 。数据库将数据保存在块设备或者本地文件系统中。 2...

    wolf
  • Redis学习笔记(七)

    在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。Redis还为集合提供了求交集、并集、差集等操作,可以非常方便的实现如共同关注...

    用户1289394
  • SpringBoot(七) - Redis 缓存

    在set基础上,加一个score值。之前set是k1 v1 v2 v3,现在zset是k1 score1 v1 score2 v2;

    化羽羽
  • Redis总结

    爱撒谎的男孩
  • Redis笔记(七):Redis应用场景

    Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

    朝雨忆轻尘
  • 七天玩转Redis | Day7、Redis常见面试题及课程总结

    课前答疑:很多小伙伴问我零基础或者根本没有使用过Redis,可以学习嘛?当然是可以的!充分考虑到小伙伴们的学习程度有所不同,所以本次课程的所有操作都是在Wind...

    灰小猿
  • JavaScript学习总结(七)

    这一讲我们来学习DOM编程(十分重要),有了DOM编程,我们就可以操作任意的HTML元素了。

    roobtyan
  • Redis专题(七)——Redis高可用(哨兵篇)

    Redis专题(七) ——Redis高可用(哨兵篇) (原创内容,转载请注明来源,谢谢) redis2.8开始,提供稳定的哨兵,对redis的主从数据...

    用户1327360
  • Redis(七)---淘汰删除策略

    LRU算法,least RecentlyUsed,最近最少使用算法。也就是说默认删除最近最少使用的键。

    Coxhuang
  • redis 面试总结

    在底层上, redis 使用了 IO 多路复用技术,像 select、epoll 等。能较好的保障吞吐量。而且 redis 采用了单线程处理请求,避免了线程切换...

    lincoln
  • Redis知识总结

    芈亓
  • Redis应用总结

    首先, 我带大家简单的了解一下Redis Redis常用数据类型(最为常用的数据类型主要有以下五种) ●String ●Hash ●List ●Set ●Sor...

    范蠡
  • Redis总结笔记

    命令入队列过程中,无语法错误,会正常存入执行队列中,但是事务提交时,会报错;;;;但是但是,此时正确的命令(即操作的对象和值均无误)依然会执行,仅仅将存在问题的...

    沁溪源
  • redis全面总结

    开启AOF,需要在配置文件中配置appendonly yes,而AOF执行流程包括下面三种

    小土豆Yuki
  • redis面试总结

    (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)

    三哥
  • redis命令总结

    程序员同行者

扫码关注腾讯云开发者

领取腾讯云代金券