Redis 提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在 Linux 终端使用. 1. 键值相关命令: 2. 服务器相关命令 键值相关命令 ① keys 命令 返回满足给定 pattern 的所有 key. [例] > keys * ) "time" ) "list4" ) "list1" ) "email" ) "age" ) "myset6" ) "…
本章对Redis服务器的数据库实现进行介绍,说明Redis数据库相关操作的实现,包括数据库中键值对的添加.删除.查看.更新等操作的实现:客户端切换数据库的实现:键超时相关功能的实现.键空间事件通知等. 以上这些功能,键空间事件通知是在src/notify.c中实现的,其他功能都是在src/db.c中实现的. 在redis.h中定义的redisServer数据结构,定义了redis服务器相关的所有属性,其中就包含了数据库的结构: struct redisServer { ... redisDb *…
Delphi中一些常用的组合键值  CTRL+A: #1  CTRL+B: #2  CTRL+C: #3  CTRL+D: #4  CTRL+E: #5  CTRL+F: #6  CTRL+G: #7  CTRL+H: #8  CTRL+I: #9  CTRL+J: #10  CTRL+K: #11  CTRL+L: #12 CR: #13 //回车 M             ? CTRL+N: #14  CTRL+O: #15  CTRL+P: #16  CTRL+Q: #17  CTRL+…
添加和删除键值对的散列操作 命令 用例和描述 HMGET HMGET key-name key [key ...] —— 从散列里面获取一个或多个键的值 HMSET HMSET key-name key value [key value ...] —— 为散列里面的一个或多个键设置值 HDEL HDEL key-name key [key ...] —— 删除散列里面的一个或多个键值对,返回删除键值对的数量 HLEN HLEN key-name —— 返回散列包含的键值对数量 例子 : > hm…
 Redis常用命令 Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以再Linux终端使用. 键值相关命令: Keys:返回满足给定pattern的所有key 用表达式*表示取出所有的key 127.0.0.1:6379> keys * 1) "age" 2) "name" 3) "age2" 127.0.0.1:6379> keys a* 1) "age" 2) "age2&…
前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能. Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数据类型不支持嵌套.下面学习一下这五种数据类型的特点和简单应用. >>String 字符串 String 数据结构是简单的 key-value 类型,value 不仅可以是 String,也可以是数字(当数字类型用 Long 可以表示的时候encoding 就是整型,其他都存储在 sdshdr 当做…
Redis相比Memcached的很大一个优势是支持数据的持久化, 通常持久化的场景一个是做数据库使用,另一个是Redis在做缓存服务器时,防止缓存失效. Redis的持久化主要有快照Snapshotting和AOF日志文件两种方式. 前者会根据配置的规则定时将内存中的数据持久化到硬盘上, 后者则是在每次执行写命令之后将命令记录下来. >>RDB方式 Redis是会以快照的形式将数据持久化到磁盘上. 默认会将快照文件存储在Redis当前进程的工作目录的dump.rdb文件中, 可以通过配置文件…
Linux下Redis的部署和启动 下载安装介质 Redis官网地址:http://www.redis.io/目前最新版本是redis-3.0.3. 可以访问 http://download.redis.io/releases/redis-3.0.3.tar.gz 下载后使用SCP上传到服务器, 或者直接下载: wget http://download.redis.io/releases/redis-3.0.3.tar.gz 解压及编译 bingyue@ubuntu:/data$ tar -zv…
关于Redis Redis是一款开源的高性能键值对数据库,最初的作者是意大利的Salvatore Sanfilippo,他的github是 antirez ,Redis的源码同样托管在Git上:https://github.com/antirez/redis.目前,Vmware在资助着redis项目的开发和维护. Redis的特性 键值对如dict["key"]="value"中,"key"是键名,"value"是键值,Red…
3.事务处理 redis 对事务的支持目前还比较简单. redis 只能保证一个 client 发起的事务中的命令可以连续的执行,而中间不会插入其他 client 的命令. 由于 redis 是单线 程来处理所有 client 的请求的所以做到这点是很容易的.一般情况下redis 在接受到一个 client 发来的命令后会立即处理并 返回处理结果,但是当一个client 在 一个连接中发出 multi 命令时,这个连接会进入一个事务上下文,该连接后续的命令并不是立即执行,而是先放到一个队列中.当…
字符串中不仅仅可以存储字符串,它可以存储以下 3 中类型的值 : 字符串 整数 浮点数 Redis 可以对字符串进行截取等相关操作,对整数.浮点数进行增减操作. 自增自减命令 命令 用例和描述 INCR INCR key-name —— 将键存储的值加上 1 DECR DECR key-name —— 将键存储的值减去 1 INCRBY INCRBY key-name amount —— 将键存储的值加上整数 amount DECRBY DECRBY key-name amount —— 将键存…
常用命令 命令 用例和描述 ZADD ZADD key-name score member [score member ...] —— 将带有分值的成员添加到 HSET 中 ZREM ZREM key-name member [member ...] —— 移除给定成员,并返回移除的数量 ZCARD ZCARD key-name —— 返回有序集合包含的成员数量 ZINCRBY ZINCRBY key-name increment member —— 将 member 成员的分值加上 incre…
常用命令 命令 用例和描述 SADD SADD key item [item ...] —— 将一个或多个元素添加到集合中,返回添加的数量 SREM SREM key item [item ...] —— 从集合里面移除一个或多个元素,返回移除数量 SISMEMBER SISMEMBER key item —— 检查元素 item 是否存在与集合 key 里面 SCARD SCARD key —— 返回集合包含的元素数量 SMEMBERS SMEMBERS key —— 返回集合中包含的所有元素…
常用命令 命令 用例和描述 RPUSH RPUSH key value [value ...] —— 将一个或多个值推入列表的右端 LPUSH LPUSH key value [value ...] —— 将一个或多个值推入列表的左端 RPOP RPOP key —— 移除并返回列表最右端的元素 LPOP LPOP key —— 移除并返回列表最左端的元素 LINDEX LINDEX key offset —— 返回列表中偏移量为 offset 的元素 LRANGE LRANGE key sta…
Redis的消息通知可以使用List类型的LPUSH和RPOP(左进右出),当然更方便的是直接使用Redis的Pub/Sub(发布/订阅)模式. >>使用List实现队列 使用列表类型的LPUSH和RPOP命令(或者RPUSH和LPOP命令,右进左出),可以很方便的实现一个任务队列,但是需要设置定时去查询队列,并且可以使用对应的阻塞命令,如LPUSH和BRPOP命令,可以实现后台接收消息的推送. >>Pub/Sub 发布订阅模式 Redis支持发布/订阅的模式,"发布/订…
>>关系型数据库的事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消. Atomic(原子性): 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节. Consistency(一致性):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态. Isolation(隔离性): 一个事务的执行不能其它事务干扰.事务允许多个用户对同一个数据进行并发访问,而不破坏数据的正确性和完整性. Du…
package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map集合的遍历. * Map -- 夫妻对 * * 思路: * A:获取所有结婚证的集合 * B:遍历结婚证的集合,得到每一个结婚证 * C:根据结婚证获取丈夫和妻子 * * 转换: * A:获取所有键值对对象的集合 * B:遍历键值对对象的集合,得到每一个键值对对象 * C:根据键值对对象获取键和值…
1.Java 6提供AbstractMap.SimpleEntry<K,V>和AbstractMap.SimpleImmutableEntry<K,V> Map.Entry<String,Integer> entry1 = new AbstractMap.SimpleEntry<String, Integer>("key", 9527); 2.Apache commons-collections的KeyValue Map.Entry<…
1. Map集合的遍历之 键值对对象找 键和值: package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map集合的遍历. * Map -- 夫妻对 * * 思路: * A:获取所有结婚证的集合 * B:遍历结婚证的集合,得到每一个结婚证 * C:根据结婚证获取丈夫和妻子 * * 转换: * A:获取所有键值对对象的集合 * B:遍历键值对对象的集合,得到每…
连接测试 连接本地服务器 语法 $ redis-cli 实例 启动 redis 客户端,打开终端并输入命令 redis-cli.该命令会连接本地的 redis 服务. $redis-cli redis 127.0.0.1:6379> redis 127.0.0.1:6379> PING PONG 在以上实例中我们连接到本地的 redis 服务并执行 PING 命令,该命令用于检测 redis 服务是否启动. 连接远程服务器 如果需要在远程 redis 服务上执行命令,同样我们使用的也是 red…
引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程字段服务器)的缩写,它以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容.同大多数脚本语言中的字典一样,Redis字典中的键值除了可以是字符串,还可以是其他的数据类型.到目前为止Redis支持的键值数据类型如下: (1)字符串类型(String) (2)散列类型(Hash) (3)列表…
1.前言 此系列博客记录redis设计与实现一书的笔记,提取书本中的知识点,省略相关说明,方便查阅. 2.基本数据结构 2.1 简单动态字符串SDS(simple dynamic string) 结构体定义: len:  buf数组中已使用字节的数量,使用len判断实际内容长度,而不是'\0'字符 free: 未使用字节的数量,查询该值,杜绝内存溢出 buf[]: 实际分配空间及存储内容(字节数组,保证二进制安全,怎么存怎么取) 保留C语言的习惯,字符串以'\0'结束,好处在于可以兼容使用C的A…
前言 很久没有写东西了(.......我的水平就是记个笔记),北漂实习的我,每天晚上回来都不想动,但是做为社会主义接班人的我,还是要时刻给自己充充电,趁着年轻,趁着日渐脱发的脑袋还没有成为"地中海",赶紧拼吧.最近在自学redis,所以要做些笔记,从最开始的redis的认识. redis在java中的使用(也就是我们的jedis的使用),然后是spring整合redis在java中的应用...........等等,如果有大佬路过,希望指几条不错的学习redis的资料,脱裤子啦!!! 正…
REmote DIctionary Server(Redis),一个 key-value 存储系统. 数据类型 Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). string string 类型是二进制安全的.意思是 redis 的 string 可以包含任何数据.比如 jpg 图片或者序列化的对象. string 类型是 Redis 最基本的数据类型,一个键最大能存储 512MB. 相关命令:…
一.Redis 事务与锁机制 1.Redis的基础事务 在Redis中开启事务的命令是 multi 命令, 而执行事务的命令是 exec 命令.multi 到 exec 命令之间的 Redis 命令将采取进入队列的形式,直至 exec 命令的出现,才会一次性发送队列里的命令去执行,而在执行这些命令的时候其他客户端就不能再插入任何命令了. 127.0.0.1:6379> multi OK 127.0.0.1:6379> set key1 value1 QUEUED 127.0.0.1:6379&…
前言 redis安装完毕后开始使用redis,先熟悉命令行操作. redis数据的类型 键:redis的所有的键都是string类型: 值:五种类型 string:字符串类型:一个string最大可以储存512MB的数据,其可以储存任何对象: hash:散列,用来存储对象,key代表对象,field代表属性 set:集合类型,无序的集合,元素为string类型,不可重复: list:列表类型,一个链表,其元素类型属于string,按照插入的顺序排序 zset:有序集合类型,元素为string,不…
目录 Redis 集群搭建 Redis 是啥 集群(Cluster) Redis Cluster 说明 Redis Cluster 节点 Redis Cluster 集群模式 不能保证一致性 创建和使用 Redis 集群 部署三个主节点 非 docker docker 安装 创建集群 Redis 入门 Redis 中的数据类型 字符串(string) 哈希(Hash) 列表(Lists) 集合(Set) 有序集合(sorted set) 发现写过一篇 ASP.NET Core 使用 Redis…
key-value键值型数据库:Redis redis Redis是in-memory型(内存型)的键值数据库,数据在磁盘上是持久的,键类型是字符串,值类型是字符串.字符串集合(Set).sorted set.字符串列表(List).哈希(Hash)等. 其中,Hash类型是一种字符串为键.字符串为值的键值对集合,类似键值类型都为字符串的Map. 使用场景: 数据可全部放入内存 频繁访问数据 redis-server使用snapshot(快照)机制进行数据持久化,这种机制是不时地遍历in-mem…
Redis的服务器命令和键值命令(String,Hash,List,Set,Zset)相对简单,只需查看文档即可. 文档地址: http://www.runoob.com/redis/redis-tutorial.html 主要学习Redis一下几个高级应用:1 安全性设置, 2 主从复制,3 事务处理, 4 持久化机制,5 发布与订阅消息,6 虚拟内存的使用 一.安全性 设置在客户端连接是需要指定的密码(由于redis速度相当的快,一秒钟可以150K次的密码尝试,所以需要设置一个密码强度很大的…
本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 本文是微信公众号[Java技术江湖]的<探索Redis设计与实现>其中一篇,本文部分内容来源于网络,为了把本文主题讲得清晰透彻,也整合了很多我认为不错的技术博客内容,引用其中了一些比较好的博客文章,如有…