在接下来的一段时间里面我要将自己学习的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等  
 
 
 
以上是自己个人学习的记录,如果有什么不对的地方请大家指正,欢迎评论!

Redis——学习之路一(初识redis)的更多相关文章

  1. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  2. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息.     ...

  3. Redis——学习之路二(初识redis服务器命令)

    上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   s ...

  4. Redis学习之路(000)- 目录

    本文是博主学习整理网上大神的文件以及自学的心得. Redis学习之路(000)- 目录 Redis学习之路(001)- Redis介绍以及安装(Linux) Redis学习之路(002)- Ubunt ...

  5. Redis学习笔记(2)——Redis的下载安装部署

    一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...

  6. Redis学习笔记(3)——Redis的命令大全

    Redis是一种nosql数据库,常被称作数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted se ...

  7. Redis学习笔记(1)——Redis简介

    一.Redis是什么? Remote Dictionary Server(Redis) 是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value ...

  8. [转]Redis之(一)初识Redis

    原文地址:http://blog.csdn.net/u012152619/article/details/52550315 Redis之(一)初识Redis 标签: Redisredis-server ...

  9. Redis 学习之路 (011) - redis 多数据库

    一台服务器上都快开启200个redis实例了,看着就崩溃了.这么做无非就是想让不同类型的数据属于不同的应用程序而彼此分开. 那么,redis有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的 ...

  10. Redis学习之路(四)之Redis集群

    [toc] #Redis集群 1.Redis Cluster简介 Redis Cluster为Redis官方提供的一种分布式集群解决方案.它支持在线节点增加和减少. 集群中的节点角色可能是主,也可能是 ...

随机推荐

  1. c语言第一章第一节 认识变量

    声明:本人大一新生,闲着无聊..写写c语言教程..菜鸟一枚..大神勿喷!!! 接下来我们都用dev来进行编译..vc++太古老了,没提示功能,不好上手,并且老是出毛病..vs太大了,编个c不至于,运行 ...

  2. PL/SQL Developer不配置TNS直接登录

    如果只是临时登录,就没必要去配置一个TNS了,Database那里直接输入<IP>:<PORT>/<服务器SERVER_NAME> EBS的直接登录: http:/ ...

  3. eclipse安装spring的插件

    第一步:插件下载 http://spring.io/tools/sts/all 安装包链接 第二步:插件安装 第三步:安装成功检测

  4. java project中 xml文件路径问题

    xml文件默认是和src文件平级的,当不在project根目录下时,java代码中使用xml文件时需要写为这种形式:“/src/..../bean.xml”

  5. JS函数运行在它们被定义的作用域内,而不是它们被执行的作用域内

    一个函数的作用域并不会因为被另一个函数调用而拓展,取得另一个函数的作用域: function show(name){ alert(name) } function show2(){ var name= ...

  6. c#获取外网IP地址的方法

    1.如果你是通过路由上网的,可以通过访问ip138之类的地址来获取外网IP 2.如果是通过PPPOE拨号上网的,可以使用以下代码获取IP //获取宽带连接(PPPOE拨号)的IP地址,timeout超 ...

  7. CSS3 media 入门

    css3 media  严格来说是自适应布局 对不同的屏幕(正确的说应该是) 写不同的css样式.而流式布局 则才算是响应式布局. css3 media  语法: @media mediatype a ...

  8. linux 环境变量

    电脑中必不可少的就是操作系统.而Linux的发展非常迅速,有赶超微软的趋势.这里介绍Linux的知识,让你学好应用Linux系统.比如要把/etc/apache/bin目录添加到PATH中,方法有三: ...

  9. mybatis调用存储过程 无参、带有输入输出参数,输出游标类型的 存储

    存储过程在小公司用的不多,但是如果业务比较复杂或者性能要求比较苛刻的时候存储过程就派上用场了,ibatis的前期的一些版本貌似不支持存储过程因此我选择了mybatis来做实验. 1.无输入和输出参数的 ...

  10. <%@ page trimDirectiveWhitespaces="true" %>

    我们经常会在JSP页面上使用: <%@ page trimDirectiveWhitespaces="true" %> 这个命令可以使jsp输出的html时去除多余的空 ...