• redis增删改查


    一、启动

      1、服务端启动

        redis-server

      2、客户端启动

        (1)redis-cli  不支持中文

        (2)redis-cli --raw  支持中文

      3、运行测试命令

        ping

        返回PONG则代表连通

    二、切换数据库

      1、切换数据库

        select n

        redis一共有15个数据库,故0≤n≤15,默认为0数据库

    三、redis键值对说明

      1、redis是key-value的数据结构

      2、每条数据都是一个键值对

      3、键(key)的类型是字符串(string)

      4、值(value)的类型分为5种:字符串(string)、哈希(hash)、列表(list)、无序集合(set)、有序集合(zset)

    四、字符串(string)

      说明:字符串是redis最基本的类型

      1、添加修改值  set

        格式:set key value  

          如果键存在则是添加

          如果不存在则是修改

        案例:set user1 aa  添加一个键为user1 值为aa

           set user1 bb  将键为user1的值修改为bb

      2、设置键值及过期时间  setex

        格式:setex key seconds value  这里过期时间seconds的单位为秒

        案例:setex user2 5 cc  设置键为user2 值为cc 过期时间为5s 

      3、设置多个键值  mset

        格式:mset key1 value1 key2 value2 ...

        案例:mset user3 dd user4 ee

      4、追加值  append

        格式:append key value

        案例:append user1 ff    get user1就返回bbff

      5、获取值  get/mget

        (1)获取单个值

          格式:get key

          案例:get user3  返回dd

        (2)获取多个值

          格式:mget key1 key2 ...

          案例:mget user3 user4  返回dd ee

      6、查找 keys

        格式1:keys key  查找单个键值对

        格式2:keys *  查找所有键值对

        案例1:keys user1

          返回user1则该键查找到了

          返回为空则该键没查找到

        案例2:keys *

          返回 user1 user3 user4

      7、查看键值对是否存在 exists

        格式:exists key 

        返回:

          1:存在;

          0:不存在

      8、查看键值对类型 type

        格式:type key

        案例:type user1

        返回:string

      9、设置键过期时间 expire

        格式:expire key second

        案例:expire user1 5  给user1设置5s过期

        注:expire跟setex的区别:expire是给已存在的键值对设置过期时间,而setex则是添加键值对并且设置过期时间

      10、查看过期时间 ttl

        格式:ttl key

          说明:

            返回值:>0:实时有效时间,单位s,=-1:永久有效;=-2:键值对不存在

      11、删除 del

        (1)删除单个键值对

          格式:del key

          案例:del user3

        (2)删除多个键值对

          格式:del key1 key2 ...

          案例:del user3 user 4

    五、哈希(hash)

      说明:

        (1)、hash是用于存储'键值对'集合

        (2)、每个hash中的键可以理解为字段(filed),一个字段(filed)对应一个值(value)

        (3)、hash中值(value)的类型为字符串(string)

        (4)、同一个hash中字段名(filed)不可重复

      1、新增单个字段 hset

        格式:hset key filed value

        案例:hset huser1 name tom  新增一个hash,其中key为huser1,filed为name,value为tom

      2、新增多个字段 hmset

        格式:hmset key filed1 value1 filed2 value2 ...

        案例:hmset huser2 name marry sex nv age 10  

        新增一个hash,key为huser2,filed1为name,value1为marry,filed2为sex,value2为nv,filed3为age,value2为10

      3、获取hash中的键和值 hget/hkeys/hvals/hgetall

        (1)获取单个值 hget

          格式:hget key filed

          案例:hget huser2 name ---->marry

        (2)获取多个值 hmget

          格式1:hkeys key filed1 filed2

          案例:hmget huser2 name sex ---->marry nv两个值

        (3)获取所有字段 hkeys

          格式:hkeys key

          案例:hkeys huser1 ---->name sex age三个键

        (4)获取所有值hvals 

          格式:hvals key

          案例:hvals huser2 ---->marry nv 10三个值

        (5)获取包含字段(filed)的值(value):hgetall

          格式:hgetall key

          案例:hgetall huser2 ----> name marry sex nv age 10

      4、删除值 hdel

          格式:hdel key filed1 filed2 ...

          案例:hdel huser2 name sex

          hgetall huser2 ---->age 10只剩最后一个组了

      5、删除整个hash del

          格式:del key

          案例:del huser2

             keys * ---->空,证明被删除了

    六、列表

      说明:

        (1)、列表中的value的类型为string

        (2)、列表中每个值按添加的顺序排列

        (3)、列表中的每个值是可以重复的

      1、新增 lpush/rpush/linsert

        (1)从左侧添加 lpush

          格式:lpush key value1 value2 value3

          案例:lpush luser1 aa bb cc

        (2)从右侧添加 rpush

          格式:rpush key value1 value2 value3

          案例:rpush luser1 dd ee ff

        (3)按指定位置添加 linsert

          格式:linsert key before/after value(指定值) value1

          案例:linsert luser1 before dd xx  在dd左侧添加一个xx

      2、获取 lrange

        格式:lrange key start stop  按索引获取

        案例:lrange luser1 0 -1 ---->cc bb aa xx dd ee ff

          说明:0代表首位,-1代表末尾 故此处是获取整个列表

      3、修改 lset

        格式:lset key index value  按照指定索引位置修改

        案例:lset key 3 yy

           lrange luser1 0 -1 ---->cc bb aa yy dd ee ff,xx变为yy了

      4、删除值 lreml

        (1)删除单个或多个相同值

          格式:lrem key count value  (count>0:从头往为删count个value,count=0:删除所有value,count<0:从尾往头删count个value)

          案例:新增列表:rpush luser2 h0 h1 h2 h3 h0 h1 h2 h0 h1 h2

            (1)从头往尾删除2个h0

              lrem luser2 2 h0

              lrange luser1 0 -1 ---->h1 h2 h3 h1 h2 h0 h1 h2,此处前两个h0被删除了

            (2)从尾往头删除2个h1

              lrem luser2 -2 h1

              lrange luser1 0 -1 ---->h1 h2 h3 h2 h0 h2 后两个h1被删除了

            (2)删除所有h2

              lrem luser2 0 h2

              lrange luser1 0 -1 ---->h1 h3 h0 此处h2被删除完了

        5、删除列表 del

          格式:del key    

          案例:del luser1

             keys * ---->空,

    七、有序集合 set   

      说明:

        (1)有序集合里的value类型为string

        (2)集合里不允许存在重复值

        (3)集合里的值只能添加和删除,不能修改

      1、新增/添加 sadd

        key存在则为添加

        key不存在则新增

        格式:sadd key value1 value2 ...

        案例:sadd suser1 aa bb cc dd

      2、返回 smembers

        格式:smembers key

        案例:smembers suser1 ---->aa bb cc dd

      3、删除指定值 srem

         格式:srem key value1 value2

         案例:srem suser1 aa bb

            smembers suser1 ---->cc dd ,aa和bb已经被删除

      4、删除集合 del

          格式:del key

          案例:del suser1

          keys * ---->空 证明已经被删除了

    八、有序集合 zset

      说明:

        (1)有序集合里的value类型为string

        (2)集合里不允许存在重复值

        (3)每个值都会关联一个分数(score),分数(score)可以为负数

        (4)集合里的值只能添加和删除,不能修改

      1、新增/添加 zadd  

        key存在则为添加

        key不存在则新建

        格式:zadd key score1 value1 score2 value2 ...

        案例:zadd zuser1 1 aa 5 bb 8 cc 3 dd

      2、获取 zrange/zrangebyscore/zscore

        (1)获取所有 zrange

          格式:zrange key start stop

          案例:zrange zuser1 0 -1 ---->aa bb cc dd

        (2)获取所有值及分数 zrange

          格式:zrange key start stop withscores

          案例:zrange zuser1 0 -1 withscores -->aa 1 bb 5 cc 8 dd 3

        (3)按分数范围获取 zrangebyscore

          格式:zrangebyscore key min max

          案例:zrangebyscore zuser1 2 6 ---->dd bb

        (4)返回值的分数 zscore

          格式:zscore key value

          案例:zscore zuser1 aa ---->1

      3、删除值 zrem

        (1)删除指定值 zrem

          格式:zrem key value1 value2 ...

          案例:zrem zuser1 aa bb

             zrange zuser1 0 -1 ---->cc dd,aa和bb被删除

        (2)按分数范围删除 zremrangebyscore

          格式:zremrangebyscore key min max

          案例:zremrangebyscore zuser1 2 6  删除分数在2到6之间的值

             zrange zuser1 0 -1 ---->dd,只剩dd了,aa和bb在上面已经被删除了,集合里还剩cc 8 dd 3,dd的分数在2到6之间,故删除,就只剩dd

      4、删除集合 del

        格式 del key

        案例:del zuser1

        keys * ---->空,证明已经被删除了

    注:redis错误解决:

      错误提示:(error) MISCONF Redis is configured to save RDB snapshots

      解决方法:127.0.0.1:6379> CONFIG SET stop-writes-on-bgsave-error no

  • 相关阅读:
    vue-vue-cli3配置文件的查看和修改
    vue-vue-cli3初始化项目
    vue-vue构建版本runtime-compiler和runtime-only的区别
    vue-vue构建版本runtime-compiler和runtime-only的区别
    vue-vue-cli2目录结构介绍
    Redis设计与实现(十一)事件
    Redis设计与实现(十)AOF持久化
    Redis设计与实现(九)RDB持久化
    Redis设计与实现(八)数据库
    Redis设计与实现(七)对象
  • 原文地址:https://www.cnblogs.com/xwxxh/p/12914990.html
Copyright © 2020-2023  润新知