Redis 初试
Posted 码上猿梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis 初试相关的知识,希望对你有一定的参考价值。
关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而 nosql 数据库是基于特殊的结构,并将数据存储到内存的数据库。从性能上而言,nosql 数据库要优于关系型数据库,从安全性上而言关系型数据库要优于 nosql 数据库,所以在实际开发中一个项目中 nosql 和关系型数据库会一起使用,达到性能和安全性的双保证。
学过数据结构的肯定对 Redis 的存储形式不会觉得陌生。
Redis中的数据采用的是 key-value 的形式进行存储的,其中的 value 支持五种类型,字符串(String),字符串列表(Lists),字符串集合(Sets),有序字符串集合(Sorted Sets),哈希类型(Hashs)。
安装启动 Redis,将下载好的 zip 解压到准备好的目录里面,cmd运行里面的 redis-server.exe 文件,如下图:
也可像安装 jdk 一样,将 Redis 的安装目录放进 path 里面,这样启动方便点。
然后就可以任意目录下面运行 redis-server.exe,redis-cli.exe 等命令了。
下面是五种类型的操作命令,加粗斜体单词均为命令操作,大写字母实在写不惯。
操作String类型数据的操作如下:
命令
解释 set keyName value
存储 key-value 对,存在即覆盖 get keyName 获取 keyName 对应的 value
getset keyName newValue
获取 keyName 对应的原始 value,然后赋值为 newValue 值,
不存在对应keyName则创建并赋值为 newValue
incr keyName
keyName 对应的 value 原子性自增 1,
如果 value 不能转换为整型,就会报错
decr keyName keyName 对应的 value 原子性自减 1,
如果 value 不能转换为整型,就会报错
incrby keyName increment keyName 对应的 value 原子性自增 increment 个 1,
如果 value 不能转换为整型,就会报错
decrby keyName increment keyName 对应的 value 原子性自减 increment 个 1,
如果 value 不能转换为整型,就会报错
append keyName newValue keyName 对应的原始value 后追加 newValue,
如果不存在 keyName,则创建一个keyName-newValue表格中提到了原子性自增,这是什么意思呢?也就是下面这样的情况永远都不会发生:
【numberKey 对应的 value 为 5,客户端 a发出了 incr numberKey 命令的同时,客户端 b 也发出了 incr numberKey 的命令,服务器同时收到两个命令,得到的结果为 6】
得到的结果将会是为 7 ,这就是原子性。
操作 Lists 类型的操作如下:
命令 解释 lpush keyName value1 [valuen] 在 keyName 对应的 list 的头部插入元素【 也就是 left 左边 】 rpush keyName value1 [valuen] 在 keyName 对应的 list 的尾部插入元素【 也就是 right 右边 】 lrange keyName startIndex endIndex 获取 keyName 对应的链表指定下标对应的元素集合,
如果 startIndex 为负数,就倒着开始,
如果 endIndex 为负数,就倒着结束。lpushx keyName value
当且仅当 keyName 存在时,在链表头部插入 value rpushx keyName value
当且仅当 keyName 存在时,在链表尾部插入 value lpop keyName
弹出 keyName 对应链表的头元素 rpop keyName
弹出 keyName 对应链表的尾元素 rpoplpush keyName
llen keyName
获取 keyName 对应链表的长度,也就是元素个数 lset keyName index newValue
设置 keyName 对应链表的 index 位置的元素 lrem keyName count value
删除 count 个值为 value 的元素,
【 如果 count 的值大于0,则从链表的头部开始遍历出最多 count 个值为 value的元素,
并删除这些元素;
如果 count 的值小于0,则从链表尾部开始遍历出最多 count 个值为 value的元素,
并删除这些元素】
以上是关于Redis 初试的主要内容,如果未能解决你的问题,请参考以下文章