zoukankan      html  css  js  c++  java
  • redis基本操作

    redis简介

    Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server,该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。

    Redis特点:
    Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。

    Redis应用场景:
    因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,
    将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。

    如何安装和进入redis数据库(Linux系统)

    安装

    sudo apt-get update
    sudo apt-get install redis-server
    
    
    #Select 命令用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。
    #默认使用 0 号数据库   默认开16个库
    SELECT 1     # 使用 1 号数据库,Redis 现在的命令提示符多了个 [1]

    进入

    redis-cli   
    redis-cli   --raw     #能显示中文
    
    exit        #退出

    redis五种数据类型及操作

    • string 字符串

    • list 列表

    • hash 哈希

    • set 集合

    • sorted sets 有序集合

    string

    string 类型是 redis 最基本的类型, string 类型,一个 key 对应一个 value,一个 value 最大能存储512MB的数据。

    • set key value

      • 设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。

      • set name 'joe'

    • get key

      • 返回key的值,若key不存在则返回nil

        mset key value [key value..]

      • 为多组key设置值,该操作为原子操作,要么一组都设置成功,要么一组都设置失败;

      • mset username 'root' password '123' name 'joe'

    • mget key [key...]

      • 返回一个或多个key的值,若key不存在返回nil,若key存在但不是字符串返回nil

      • mget username, password, name       #有,号会被认为是key的一部分
        mget username password name
    • append key value

      • 将指定的值追加到key末尾,若key不存在,则创建并赋值,返回追加后的字符串长度

      • append name love

    • ttl key

      • 返回key的剩余生存时间, -1 表示永久存在, -2表示不存在

    • set key value ex seconds

      • 设置 key的同时,设置过期时间(单位:秒) key 过期后将不再可用,会被系统自动删除。

      • set age 18 ex 20    
        setex key seconds value 例: ( setex sex 20 '男' )
    • persist key

      • 移除指定key的生存时间,成功返回1,若key不存在或不存在生存时间时返回0;

    全局key操作

    • rename key newkey 改名

      • 当key和newkey相同或者key不存在时返回一个错误,当newkey已存在时则会覆盖;

      • keys *                  # 查看所有的key

        del key # 删除 返回成功的个数

        exists key # 查看key是否存在 返回存在个个数

        type key # 查看key类型

        expire key seconds #设置过期时间
         
        persist key #移除过期时间

    list

    列表的元素类型为string,按照插入顺序排序在列表的头部或者尾部添加元素.
    • lpush key value[value...]

      • 在头部插入数据

      • lpush  key  value     #例  lpush my_list a b c d
      • 在尾部添加数据

      • rpush  key  value     #例  rpush my_rlist a b c d
    • lindex key index

      • 返回列表中元素的值。index从0开始,当index超出索引时返回null

      • lindex my_list 3    #查看第三个

    • lrange key start stop

      • 查看索引范围内元素的值

      • lrange my_list 0 -1     #查看所有值
    • llen key

      • 返回列表的长度

        llen my_list
    • lset key index newvalue

      • 指定索引号进行修改

      • lset my_list 0  hello

    • 删除

      • lpop key 删除左边第一个

      • rpop my_list

      • rpop key 删除右边第一个

      • rpop my_list

    hash

    是一个键值(key=>value)对集合。是string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象, field 域, value 值

    设置/修改

    • hset key field value

      • 将field-value设置到hash表中,若key不存在会新建hash表再赋值,已存在则会覆盖;

      • hset user name xiaoming     #user { name:xiaoming}
    • hmset key field1 value1[field value...]

      • 同时设置多个

      • # user {name:xiaoming , age:18}
        hmset user name xiaoming age 18

    查看

    • hget key field

      • 获取value

      • hget user name
    • hmget key field[field...]

      • 获取多个value

      • hmget user name age
    • hvals key

      • 获取全部value

    • hkeys key

      • 获取所有的field

    • hgetall key

      • 获取全部fieldvalue

    • hlen key

      • 查看有几个键值对

    • hexists key field

      • 判断hash表中指定域是否存在,返回1,若key或field不存在则返回0;

      • hexists user age

    删除

    • hdel key field

      • hdel user name

    set

    元素为string类型,无序集合,元素具有唯一性,不重复 
    • sadd key member [member...] 增加元素

      • 将一个或多个member元素加入到集合key中,若member已存在那么会忽略此元素,

      • sadd my_set m n b v c x z b

    • scard key

      • 返回集合key中元素的个数;

    • smembers key

      • 获取集合中所有元素

    • sismember key member 判断集合存在某个值

      • 判断member在key中是否已存在, 返回0或1

      • sismember my_set b

    • 删除

      • srem key member [member...]

        • 移除一个或多个元素,不存在的member会被忽略,返回被移除元素个数

        • srem my_set a b n 
      • spop key 随机删除

        • 移除并返回集合中的一个随机元素,当key不存在时返回NULL

    zset

    类似于Set,不同的是Sorted中的每个成员都分配了一个分数(Score)用于对其中的成员进行排序(升序)。
    zset的成员是唯一的,但分数(score)却可以重复。

    添加/修改

    • zadd key score member[ [score member] ..]

      • 设置, 存在就更新

      • zadd  my_zset 1 'one'
        zadd  my_zset 2 'tow'

        zadd  my_zset 10 a 20 b 30 c 40 d 50 a

    查看

    • zscore key member

      • 查看score值

        zscore my_zset a

    • zrange key start stop[withscores]

      • 按索引返回key的成员, withscores表示显示score

      • zrange my_zset 0 -1   #显示全部
    • zrangebyscore key min max

      • 返回集合中 score 在给定区间的元素

      • zrangebyscore zset 10 30

    删除

    • zrem key member [member...]

      • 移除有序集合中的一个或多个元素,若member不存在则忽略;

      • zrem my_zset two 

    • zremrangebyrank min max :

      • 删除集合中索引在给定区间的元素

      zremrangebyrank my_zset 1 3
    • zremrangebyscore min max :

      • 删除集合中 score 在给定区间的元素

      zremrangebyscore my_zset 10 30
       
  • 相关阅读:
    小米华为vivooppo手机记录隐私证据查询
    【类型】在资源管理器中,对文件按照“类型”排序,实际上 就是按照文件扩展名排序。
    【转载】在python的class中的,self到底是什么?
    【转载】Windows 10系统默认将画面显示比例调整至125%或150%,最高分辨率已经达到3840×2160(4K)这一级别。
    [转载]层叠与并排win10
    【转载】浏览器测试工具有哪些 浏览器安全性能内核兼容测试工具推荐
    【转载】我常用的地址,现记录一下,遗忘时或换电脑时查询
    【转载】浏览器测试基本跑分网站
    【转载】Python 代码调试技巧
    HDU 2446 Shell Pyramid(二分查找 数学)
  • 原文地址:https://www.cnblogs.com/austinjoe/p/9571746.html
Copyright © 2011-2022 走看看