Redis学习笔记
文章平均质量分 86
Redis数据类型、事务、排序、和Lua脚本
z1340954953
男儿当自强
展开
-
redis学习(一) redis简介
1. redis的存储结构redis是remote dictionary server(远程字典服务器的缩写),是以字典结构存储数据(或称为映射,关联数组的数据结构),并允许其他应用通过tcp协议读写字典中的内容。redis中支持的键值数据类型:1>字符串类型2> 散列类型3> 列表类型4> 集合类型5> 有序集合类型这种字典形式的存储结构和常见的mysql等关系型数据原创 2018-01-14 10:16:59 · 474 阅读 · 0 评论 -
redis学习(二) redis 准备
redis 安装1. 官网下载:https://redis.io/download ,选择stable版本的,unstable是不稳定版本可以用来测试最新的功能2. 解压redis-4.0.6.tar.gz , tar -zxvf redis-4.0.6.tar.gz3. 进入到目录中,make 进行编译执行完,make编译后,目录结构如图:,进入到src目原创 2018-01-23 15:05:48 · 533 阅读 · 0 评论 -
redis学习(三) redis的数据类型(基本命令,字符串,散列类型)
redis实例的特点Redis是一个字典结构的存储服务器,而实际上一个redis实例提供了多个用来存储数据的字典,客户端可以将数据指定存放到那个字典中。每个数据库对外都是从0开始的递增数字命名,redis默认支持16个数据库,可以更改配置参数databases来修改这个数字。默认选中0号数据库,也可以通过select名来更换数据库(下标 0-15)注意:1. redis不支持自定义数据库的名字2....原创 2018-02-28 14:26:14 · 419 阅读 · 0 评论 -
redis学习(四) 列表类型,集合类型,有序集合类型
列表类型列表类型list存放的一个有序的字符串列表,内部是使用双向链表实现的,可以向两端添加元素,并且获取接近两端的元素速度越快,链表的代价是通过索引访问元素比较慢。这种特点,可以作为队列来使用。命令1. 向两端添加元素lpush key value[value ...]rpush key value[value ...]2. 从链表两端弹出元素lpop key rpop key 结合上面的四个命...原创 2018-03-01 10:56:53 · 426 阅读 · 0 评论 -
redis学习(五) redis进阶之事务和过期时间的应用
事务redis中的事务是一组命令的集合。使得一个事务中的redis命令要么全执行,要么全不执行使用方式: multi 和exec完成multi: 告诉redis将同一个事务的命令存储起来。 之后发送两个SADD, redis返回queued表示命令进入了等待执行的事务队列中。exec:则是告知redis按照发送顺序执行命令。一旦客户端发送exec名,所有命令将执行,即使此后客户端断线,没有关系。...原创 2018-03-02 10:38:19 · 1346 阅读 · 0 评论 -
redis学习(六) 排序(sort,by,store,性能优化)
SORT命令sort命令可以对列表类型、集合类型和有序集合类型键进行排序,并且可以完成与关系型数据库中连接查询相类似的任务。sort key [DESC][ALPHA] [limit offset count ]1. 如果没有加上ALPHA参数的话,sort命令会尝试将所有元素转为双精度浮点数来比较,如果无法转换则会提示错误。2. DESC 命令sort默认按照从小到大的顺序排列,加上desc...原创 2018-03-04 09:01:29 · 2441 阅读 · 0 评论 -
redis学习(七) 消息通知
场景(可以略过不看,只是引入的场景)邮件订阅的,在博客首页放入一个文本框供访客输入自己的邮箱地址,提交后博客会将该地址存入redis的一个集合类型的键中(使用集合类型是为了保证同一邮箱地址不会存储多个),每当发布新文章时,就向收集到的邮箱地址发送通知邮件。问题:输入邮箱地址提交后,页面需要很久时间才能载入完。原因:原来小白为了保证用户没有输入他人的邮箱,在提交之后程序会向用户输入的邮箱发送一封包含...原创 2018-03-05 15:05:17 · 392 阅读 · 0 评论 -
redis学习(八) Lua语法
Lua语法数据类型Lua是一个动态类型语言,一个变量可以存储任何类型的值。编写redis脚本会用到的类型Lua常用数据类型类型名取值空(nil)空类型只包含一个值,即nil。nil表示空,所有没有赋值的变量或表的字段都是nil布尔(boolean)布尔类型包含true和false数字(number)整数和浮点数都是使用数字类型存储,如1、0.23、3.5e20等字符串(string)字符串类型可以...原创 2018-03-08 15:56:52 · 3989 阅读 · 0 评论 -
redis学习(九) redis事务和redis脚本的比较
如果想要实现一组命令原子性的执行,一种方法是使用事务,一种方法使用redis脚本,可以对比下两种方式的区别Redis事务回顾事务命令:MULTI, EXEC, DIDCARD ,WATCH ,UNWATCH使用: MULTI : 开启一个事务,并会生成一个任务队列,客户端发送的指令都会放在任务队列中,总是返回OK EXEC: 执行任务队列中的命令,成功返回OK,失败返回nil ...原创 2018-03-11 11:31:32 · 1061 阅读 · 0 评论