• 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等  
     
     
     
    以上是自己个人学习的记录,如果有什么不对的地方请大家指正,欢迎评论!
  • 相关阅读:
    C#数据类型
    面试常备题素数的判断
    Eclipse输入命令行参数
    Socket编程第一步PC上服务器回显客户端发送的字符串
    C# 格式化输出
    截止至2004年8月1日全球CCIE人数统计
    什么是3G?
    DoS 拒绝服务攻击专题
    我的Blog音乐版~~
    国庆啊~~累得我好苦啊~~~
  • 原文地址:https://www.cnblogs.com/GoogleGetZ/p/6380641.html
Copyright © 2020-2023  润新知