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

    进入reids

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

    ##redis五种数据类型、及操作

    字符串 string
    列表 list
    哈希 hash
    集合 set
    有序集合 sorted sets(zset)

    string

    string 类型是 redis 最基本的类型, string 类型,一个 key 对应一个 value,一个 value 最大能存储512MB的数据。
    • set key value
      • 设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。

      •  set name 'bear' 

    • get key

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

        mset key value [key value..]

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

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

    • mget key [key...]

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

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

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

      •  append name bear 

     

    • 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             #移除过期时间
            
        flushdb                 #删除当前数据库中的所有key
        ​
        flushall                #删所有
        
        

     

    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

      • 返回列表的长度

    • lset key index newvalue

      • 指定索引号进行修改

      •  lset my_list 0 'hello' 

    • 删除

      • lpop key 删除左边第一个

      • rpop my_list

      • rpop key 删除右边第一个

      • rpop my_list

      • lrem key count value

        • 删除指定数量的value值

        • rpush  test_list  c a a b b c  d e a d f m c
          ​
          #count > 0 从左往右 删除数量为count的value
          例 : lrem test_list 2 a
          lrange test_list 0 -1
          ​
          #count = 0 删除所有的 value
          例 : lrem test_list 0 d,              
          ​
          #count < 0 从右往左 删除数量为count的value
          例 : lrem test_list -2 c

    hash

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

    设置/修改

    • hset key field value

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

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

      • 同时设置多个

      • # user {name:bear , age:18}
        hmset user name bear 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;

    删除

    • 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

    • 交集

      # sinter key1 key2 ..
      例
      sinter my_set my_set2

      把 key1 key2的交集合并到newkey

      # sinterstore newkey key1 key2
      例
      sinterstore  new_set my_set my_set2
    • 并集

      # sunion key1 key2 ...
      例
      sunion my_set my_set2
       

      把 key1 key2的并集合并到newkey

      # sunionstore newkey key1 key2
      例
      sunionstore new_set2 my_set my_set2
    • 差集

      # sdiff key1 key2
      sdiff my_set my_set2

      把 key1 key2的差集合并到newkey

      # sdiffstore newkey key1 key2
      例
      sdiffstore new_set3 my_set my_set2

     

    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 one 20 two 30 three 40 four 50 'five'

    查看

    • zscore key member

      • 查看score值

         zscore my_zset two 

    • 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

     

    redis配置

     

    vim /etc/redis/redis.conf    #配置文件地址
    
    port 6379                     # 默认端口    
    logfile /var/log/redis.log      # 日志文件位置    
    dbfilename dump.rdb         # RDB持久化数据文件名 ,  
    dir /var/lib/redis            #指定本地数据库存放目录
    bind 0.0.0.0                # 指定IP进行监听   
    
    requirepass  yourpassword    #密码
        
    save 900 1                #这三个是持久化,注释掉就关掉持久化
    save 300 10
    save 60 10000

    启动/停止/重启命令

    /etc/init.d/redis-server stop
    /etc/init.d/redis-server start
    /etc/init.d/redis-server restart

    设置密码

    config get requirepass        //获取当前密码
        #默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务
        
    进入配置文件
        vim /etc/redis/redis.conf  
    找到requirepass 设置密码
        vim 查找 /requirepass  按n查找下一个
        requirepass  yourpassword  //此处注意,行前不能有空格
    重启redis
        redis-cli shutdown
    
    进入在添加    auth 123456
    登陆的时候加上密码 redis-cli -a 123456

  • 相关阅读:
    记录操作日志
    sql优化【转】
    JS事件
    MFC电子词典
    控制台电子词典---链表
    控制台电子词典
    贪吃蛇
    十六进制转化
    进程线程
    面试体复习
  • 原文地址:https://www.cnblogs.com/Selling-fish-bears/p/9298570.html
Copyright © 2011-2022 走看看