Redis——学习之路一(初识redis)

在接下来的一段时间里面我要将自己学习的redis整理一遍,下面是我整理的一些资料:

  Redis是一款依据BSD开源协议发行的高性能Key-Value存储系统(cache and store),所以redis是可以查看源代码https://github.com/MSOpenTech/redis/tree/3.0 。

它是通常被称为数据结构服务器,因为值(value)可以使字符串(string)、哈希(hashes)、列表(list)、集合(sets),和有序集合(sorted sets)类型。

  在将redis类型以前我们先在自己的电脑上安装一下redis,打开这个链接选择2.8.2400这个版本,下载msi。msi是安装版本,zip是免安装版本。区别在于msi安装版本安装后可以以服务的形式存在。需要注意的是redis安装包没有32位系统的只有64位的

  安装到D盘中,如下

  接下来再看看我们的服务有一个redis的服务,而且该服务已经启动。

  然后我就使用(redis-cli.exe)客户端连接redis服务。连接redis服务器的命令为redis-cli.exe -h 127.0.0.1 -p 6379 -auth 密码

  先开打运行程序输入“cmd”然后如下:

  因为默认端口为6379所有可以不用-p 6379 ,同时刚安装默认情况下没有密码,所以不需要密码。

  然后我在命令行输入"echo "hello redis" ",如果返回"hello redis" 说明连接成功,这样我们就完成了redis安装,也知道如何连接redis服务。

  

  下面开始简单介绍字符串(string)、哈希(hashes)、列表(list)、集合(sets),和有序集合(sorted sets)类型。

 

字符串(string)

String类型是最常用的一种数据类型,普通的Key/value存储都可以归为此类。一个Key对应一个Value,String类型是二进制安全的。Redis的String可以包含任何数据,可以存放json数据,图像数据等等。value存储最大数据量为512M。
主要命令有
set key value #将字符串值value关联到key
get key #返回key所关联的字符串值
decr key #将key中储存的数字值减一
incr key #将key中存储的数字值加一
哈希(hashes)
redis hash是一个string类型的field和value的映射表。它的添加,删除操作都是O(1)(平均)。hash特别适合用于存储对象。
在上面服务器配置文件中包含

  hash-max-zipmap-entries 64 #配置字段最多64个。

  hash-max-zipmap-value 512 #配置value最大为512字节。

主要命令有
hset key field #将哈希表key中的域field的值设为value
  hget key field #返回哈希表key中给定域field的值。
以及hdel、hgetall、hkeys、hvals等
列表(list)
redis的list类型其实就是一个每个子元素都是string类型的双向链表。所以[lr]push和[lr]pop命令的算法时间复杂度都是O(1),另外list会记录链表的长度。所以llen操作也是O(1).链表的最大长度是(2的32次方-1)。我们可以通过push,pop操作从链表的头部或者尾部添加删除元素。这使得list既可以用作栈,也可以用作队列。
主要命令有
lset key index value #将列表key下标为index的元素的值设置为value。当然不可以直接使用
要先使用命令 lpush kye value #将一个或多个value插入到列表key的表头
然后我们再lpush几个值
lrange key start stop #返回列表key中指定区间内的元素,区间以偏移量start和stop指定。 lrange listkey 0 -1 表示显示所有数据 lrange listkey 0 0 表示显示第一个元素
以及llen、rpop、lpop等
集合(sets)
redis的set是string类型的无序集合。set元素最大可以包含(2的32次方-1)个元素。set的是通过hash table实现的,所以添加,删除,查找的复杂度都是O(1)。
主要命令有
sadd key member #将一个或多个member元素加入到集合key当中,已经存在于集合的member元素将被忽略。
smembers key #返回集合key中的所有成员。
以及sdiff、sinter、sunion、scard等
有序集合(sorted sets)
和set一样sorted set也是string类型元素的集合,不同的是每个元素都会关联一个double类型的score。sorted set的实现是skip list和hash table的混合体当元素被添加到集合中时,一个元素到score的映射被添加到hash table中,所以给定一个元素获取score的开销是O(1),另一个score到元素的映射被添加到skip list并按照score排序,所以就可以有序的获取集合中的元素。添加,删除操作开销都是O(log(N))和skip list的开销一致,redis的skip list实现用的是双向链表,这样就可以逆序从尾部取元素。
主要命令有
zadd key score member #将一个或多个member元素及其score值加入到有序集key当中。
zrange key start stop [withscores] #返回有序集key中,指定区间内的成员。其中成员的位置按score值递增(从小到大)来排序。还有一个可选分值
以及zcard、zcount、zrank、zrem、zscore等  
以上是自己个人学习的记录,如果有什么不对的地方请大家指正,欢迎评论!

转载于:https://www.cnblogs.com/GoogleGetZ/p/6380641.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 处理dat文件画图,matlab_DAT_processing matlab处理dat文件并进行绘图 - 下载 - 搜珍网...

matlab实验2/11.txtmatlab实验2/B00001.datmatlab实验2/B00002.datmatlab实验2/B00003.datmatlab实验2/B00004.datmatlab实验2/B00005.datmatlab实验2/B00006.datmatlab实验2/B00007.datmatlab实验2/corv.txtmatlab实验2/cory.txtmatlab实验2/matlab批量载入数据.txtmatlab实验…

leetcode面试题 08.03. 魔术索引(二分)

魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引…

python返回序列中的最小元素_python实现获取序列中最小的几个元素

本文实例讲述了python实现获取序列中最小的几个元素。分享给大家供大家参考。具体方法如下:import heapqimport randomdef issorted(data):data list(data)heapq.heapify(data)while data:yield heapq.heappop(data)alist [x for x in range(10)]random.shuffle(a…

apache访问快捷方式

<VirtualHost *:80>   DocumentRoot "XXX"   ServerName XXX   Alias /pdodata/ "XXX"</VirtualHost> 其中 Alias /pdodata/ "XXX" /data/是快捷方式名称 后面的代表快捷方式具体目录名称转载于:https://www.cnblogs.com/…

css----实现checkbox图片切换

1、效果图 2、代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>checkbox</title><style type"text/css">label {width: 20px;font-size: 12px;cursor: pointer;}label i {display: inline-block…

Node.js 究竟是什么?

在网上看到一篇介绍Node.js的文章&#xff0c;很好的介绍了Node.js Michael Abernethy, 自由程序员, Freelancer 2011 年 10 月 09 日 (最初于 2011 年 4 月 26 日) Node.js 究竟是什么&#xff1f; 一个 “编码就绪” 服务器 Node 是一个服务器端 JavaScript 解释器&#xff…

react中绑定点击事件_在React中绑定事件处理程序的最佳方法

react中绑定点击事件by Charlee Li通过李李 在React中绑定事件处理程序的最佳方法 (The best way to bind event handlers in React) Binding event handlers in React can be tricky (you have JavaScript to thank for that). For those who know the history of Perl and P…

json_decode php数组,json_decode转化为数组加true,json_encode和json_decode区别

一、json_encode和json_decode区别1、json_encode&#xff1a;对象/数组 ---> json2、json_decode&#xff1a;json ---> 对象/数组二、json_decode转化为数组转化为数组时&#xff0c;第二个参数很重要&#xff1a;不加true会以PHP对象输出, 加true输出PHP数组&#xff…

leetcode1219. 黄金矿工(回溯)

你要开发一座金矿&#xff0c;地质勘测学家已经探明了这座金矿中的资源分布&#xff0c;并用大小为 m * n 的网格 grid 进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量&#xff1b;如果该单元格是空的&#xff0c;那么就是 0。 为了使收益最大化&#xff0c;矿工…

【无删减】Python老司机收藏夹的17个国外免费学习网站

用Python编写代码一点都不难&#xff0c;事实上它一直被赞誉为最容易学的编程语言。如果你准备学习web开发&#xff0c; Python是一个不错的开始&#xff0c;甚至想做游戏的话&#xff0c;用Python来开发游戏的资源也有很多。这是快速学习这门语言的途径之一。许多程序员都把Py…

iframe vue 前进 后退_vue常见面试题

1、说说你对 SPA 单页面的理解&#xff0c;它的优缺点分别是什么&#xff1f;SPA&#xff08; single-page application &#xff09;仅在 Web 页面初始化时加载相应的 HTML、JavaScript 和 CSS。一旦页面加载完成&#xff0c;SPA 不会因为用户的操作而进行页面的重新加载或跳转…

C#编写运行在Linux环境下的采用Mediainfo来获取多媒体文件信息的代码

C#编写运行在Linux环境下的采用Mediainfo来获取多媒体文件信息的代码 原文:C#编写运行在Linux环境下的采用Mediainfo来获取多媒体文件信息的代码项目开始设计的是运行在windows下&#xff0c;所以一开始采用的是windows服务模式来获取多媒体文件信息&#xff0c;后来要求调整为…

如何用chrome扩展将网页变成黑底白字,用以保护视力

不知道有没有科学依据&#xff0c;自己感觉黑底白字对视力好些&#xff0c;于是动手加个chrome扩展&#xff1a; 第一步&#xff1a;建个文件夹&#xff0c;名称比如叫changeColor; 第二步&#xff1a;在changeColor文件夹中建三个文件&#xff1a;manifest.json 、 backgrou…

从零学习机器学习_机器学习:如何从零变英雄

从零学习机器学习以“为什么&#xff1f;”开头 并以“我准备好了&#xff01;”结尾 (Start with “Why?” and end with “I’m ready!”) If your understanding of A.I. and Machine Learning is a big question mark, then this is the blog post for you. Here, I gradu…

sqoop动态分区导入mysql,使用sqoop import从mysql往hive含分区表中导入数据的一些注意事项...

先看下面这条语句&#xff0c;它实现的功能是将特定日期的数据从mysql表中直接导入hive$ sqoop import \--connect jdbc:mysql://192.168.xx.xx:3306/db_name?useSSLfalse \--username xxx --password xxxxxx \--query "select d.id, d.callsign, d.sobt from t_flight_b…

leetcode面试题 08.04. 幂集(递归)

幂集。编写一种方法&#xff0c;返回某集合的所有子集。集合中不包含重复的元素。 说明&#xff1a;解集不能包含重复的子集。 示例: 输入&#xff1a; nums [1,2,3] 输出&#xff1a; [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 代码 class Solution {List&l…

gatsby_我如何使用Gatsby和Netlify建立博客

gatsbyby Pav Sidhu通过帕夫西杜(Pav Sidhu) 我如何使用Gatsby和Netlify建立博客 (How I Built My Blog Using Gatsby and Netlify) 您能说出更具标志性的二人​​组合吗&#xff1f; &#xff1f; (Can you name a more iconic duo? ?) Years ago, whenever I built a stat…

交叉熵与相对熵

熵的本质是香农信息量()的期望。 现有关于样本集的2个概率分布p和q&#xff0c;其中p为真实分布&#xff0c;q非真实分布。 按照真实分布p来衡量识别一个样本的所需要的编码长度的期望(即平均编码长度)为&#xff1a;H(p)。 如果使用错误分布q来表示来自真实分布p的平均编码长度…

menustrip

在对应菜单上点击鼠标右键&#xff0c;插入&#xff0c;SEPARATOR 就可以了&#xff0c;然后可以选中拖动位置。转载于:https://www.cnblogs.com/Echo529/p/6382302.html

直接排序

题目&#xff1a;使用直接排序法将下列数组&#xff08;从小到大排序&#xff09;思路&#xff1a;第一次&#xff1a;使用索引值为0的元素与其他位置的元素挨个比较一次&#xff0c;如果发现比0号索引值的元素小的&#xff0c;那么交换位置&#xff0c;第一轮下来最小值被放在…