redis基础

Posted 印记XP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis基础相关的知识,希望对你有一定的参考价值。

一、什么是redis

  redis是一个开源的,内存中的数据结构存储系统,key-value的非关系型数据库,它可以作为数据库,缓存和消息中间件,支持持久化。

二、redis的安装和卸载

  1.版本为奇数的是不稳定版本。为偶数的是稳定版本。

  2.官网下载redis,也可一在linux中使用wget命令下载;wget -P 存放位置 redis的下载路径。

  3.在linux下进行解压:tar -xvf  redis

  4.通过./redis-server 启动redis,要使用客户端连接redis 不能直接在当前窗口中连接,使用Xshell 重新打开一个窗口,进入到redis目录,运行./redis-cli,输入keys *可以查看

  5.如果想在同一个窗口启动客户端,需要复制(cp 源文件  目标位置) redsi.conf,然后修改redis.conf中的  daemonize  的值为yes(设置redis为守护进程),此时可以通过 redis-server redis.conf启动redis,然后再启动客户端 ./redis-cli

  6.退出redis 可以使用 ps-ef|grep redis  查看redis的端口,然后使用kill 杀死进程 (kill -p 进程id);

  7.卸载:直接删除redis 文件即可   (rm -rf  redis)  强制删除。

三、redis的数据结构

  1.字符串类型:String  key是字符串类型,value是字符串类型

    启动redis的客户端

      set key  value

      get key 如果不存在key 则返回nil

      在redis的官方文档中---命令中包含这些命令

  2.哈希:hash

    hash类型设置语法:hset 键 field value;一个键可以有很多个field,很适合存储一个对象

      eg:一个hash村user键,有name和age两个字段:

          hset user name  xxx;

          hset user age xxx;

          hkeys user ;查看这个键有哪些字段

          hlen user ;查看这个键的字段长度

          hget  user name ;获取name的值

        

  3.list

    redis支持list数据结构,底层是一个双向链表,允许重复值存在,按照插入顺序保存,可以使用lpush从左边插入,也可以使用rpush从右边插入。lpop从左边弹出,rpop从右边弹出,从而实现FIFO队列思想(先进先出,从左边插入,右边弹出,插入和弹出方向不同,就可以实现。),插入和弹出方向相同,实现栈的思想

    eg:

      lpush hobbys xxx

      lpush hobbys  yyy

      lpush  hobbys  zzz

      lrange hobbys 0 -1 ;  查看存放的值的个数

      rpop hobbys  (从右边弹出,实现队列思想---先进先出)

      lpop bobbys   (从左边弹出,实现栈的思想 --先进后出)

  4.set

    redsi 的set 是String 类型的无序集合,集合成员是唯一的。这就意味着集合中不能出现重复的数据。

      eg:

        sadd  num 1  插入set集合

        sadd num  2

        sadd num  3

        SMEMBERS num     查看set集合中的数据

        spop num    弹出set集合中的数据(弹出来的值是随机的)

  5.有序集合 :sorted set

    sorted set 是set 的升级,它在set的基础上增加了一个顺序属性。这一属性在修改添加元素的时候可以指定,每次指定后,zset会自动从新按新的值调整顺序。

    eg:

      zadd person 1 xxx  插入 有序结合

      zadd person 2 yyy

      zadd person  3  zzz

      zrange person 0 -1      查看有序集合中的数据(此时会根据分数排序   zrange person 0 -1 withscores  会把值对应的分数值打印出来)

      如果在插入的时候,分数值相同,会根据插入的值进行字典排序

        zadd person  3  sss

        zadd person  3 ddd

        zadd person  3  aaa

        zrange person 0 -1 withscores 9查询的结果是  aaa  3   ddd  3    sss  3

        zrem person  xxx;  删除一个指定的命令  

    

 

 

 

 

 

以上是关于redis基础的主要内容,如果未能解决你的问题,请参考以下文章

Redis实战-Redis基础篇(上)

01. Redis 基础

01. Redis 基础

Redis与Celery基础

2.Redis系列Redis基础数据结构

redis使用基础 ——Redis管理