zoukankan      html  css  js  c++  java
  • Redis详细用法

    Redis详细用法

    • 1.redis启动命令

          本机Redis 安装路径是在usr/local/redis 目录下
          启动命令: ./redis-server redis.conf(启动时指定配置文件)
          测试启动是否成功:ps aux|grep redis
          关闭redis: 杀死redis进程  kill
          进入redis自带的客户端工具: ./redis-cli
      
    • 2.redis.conf配置文件信息:

          修改启动方式: daemonize  yes
          端口号port:6379
          database:16  redis默认开启16个库,16个存储空间,也就说这16个之间是数据隔离的
          cluster-enabled  yes 配置redis集群。这个配置默认是注释的,默认不开启集群
          save 900 1   这个表示redis的持久化方案(rdb)
          dbfilename  dump.rdb  redis持久化时,存放数据的文件
          appendonly no  是否开启redis的aof持久化方案
          appendfilename  "appendonly.aof"   aof持久化方案存放的文件
      
    • 3.redis常用命令:

         redis数据类型  String(字符串) Hash(哈希) List(链表) Set(集合) SortSet(有序集合)
           
         String  采用key  value形式存储数据
           set key value 存储数据
                set name zhangsan
           get key   获取数据
                get name
           incr 让当前值以1的数量递增,并返回递增后的值
                set aa  11
                incr  aa  返回12
           incrby  可以指定参数一次增加的数值,并返回递增后的值
                set aa  11
        		incrby aa 10 返回21
           decr  让当前键值以1的数量递减,并返回递减后的值
           decrby 可以指定参数一次递减的数值,并返回递减后的值
           incrbyfloat 可以递增一个双精度浮点数
           append 作用是向键值得末尾追加value
           mset/mget作用与get/set相似,不过mget/msetkey可以同时获得、设置多个键的键值
           mset xxx 111 yyy 222 zzz 333 
           mget xxx  yyy zzz
           返回 “111”  “222”  “333”   
           
           hset 存储一个哈希键值对的集合
           hset user name  zhangsan 
           hset user password 123
           
           hmset 存储一个或多个哈希 是键值对的集合
           hmset user name tom password 123 address beijing
           hgetall 获取一个哈希是键值对的集合
           hgetall user  返回name zhangsan   password 123  address beijing
           hexits 判断哈希表中的字段名是否存在  如果存在返回1,否则返回0
           hkeys 只返回字段名 hkeys user :1;
           hvals 只返回字段值  hdel user:1 name
           hlen user:1 name
           
           list(链表) 不常用
           lpush 向链表左侧添加
              lpush  user zhangsan
        	  lpush user list 
        	  lpush user wangwu
           rpush 向链表右侧添加
             rpush user zhangsan
        	 rpush user lisi
        	 rpush user wangwu
           lpop 从左边弹出一个元素
           rpop 从右边弹出一个元素
           llen  返回链表中元素的个数 相当于关系型数据库中 select count(*)
           lrange 将返回索引从start到stop之间的所有元素。redis的列表起始索引为0
           lrem  删除列表中前count个值为value的元素,返回值是实际删除的元素个数。
                 根据count值得不同,老人命令的执行方式会略有不同
        	   1.count > 0 时lrem命令会从列表左边开始删除前count个值为value的元素
        	   2.count < 0 时lrem命令会从列表右边开始删除前count个值为value的元素
        	   3.count = 0 时lrem命令会删除所有值为value的元素
           lindex 如果要将列表类型当做数组来用,lindex命令是必不可少的。
              lindex命令用来返回指定索引的元素,索引从0开始
           lset   是另一个通过索引操作列表的命令,它会将索引为index的元素赋值为value
           
           set sortset更不常用,就不介绍了
           
           ping 测试redis是否链接 如果已链接返回 PONG
           echo 测试redis是否链接 如果已链接返回 echo命令后给定的值
           keys 返回所有的key 可以加*通配 
           exists 判断string类型一个key是否存在 如果存在返回1 否则返回0
           del 删除一个key或者多个
           expire 设置一个key的过期时间
           ttl 查看键的失效时间
           select 选择数据库(0-15)
           move 将当前数据库中的key转移到其他数据库中
           persist 移除给定key的过期时间
           randomkey 随机返回key空间的一个key
           type 返回值的类型
           quit 退出连接
           dbsize 返回当前数据库中的key的数目
           info 获取服务器的信息和统计
           flushdb 删除当前选择的数据库中的key
           flushall 删除所有数据库中的所有key
      
    • redis的持久化方案:

            redis 除了可以作为缓存技术,也可以作为非关系型数据库。
            作为缓存技术,数据默认是存放在内存中的,(这样可以提升存取速度)
            但内存不是持久化设备,不能永久保存数据,一旦机器发生问题,
            将会造成数据丢失。因此,redis为了解决这个文件,提供了数据的持久化方
            案(memcahe 没有这个能力)
      
    • 两种持久化方案:RDB和AOF方案

            RDB方案:
                redis默认开启的一种持久化方案。它会根据时间轴,以及key的数量改变来完成持久化动作。
                save 900 1 该备份策略表示 在 900 秒内,如果有一个或多个key的值发生了变化,就触发
        		redis的持久化机制。
             AOF方案: 
        	    该持久化方案,redis默认情况下没有开启。需要手动开启。
                 redis.conf 中的  appendonly no 配置成 yes
        
                 aof的持久化策略为:redis会记录当前用户执行的,且改变数据的命令。
                 这种持久化的密度会更细。当然也会对redis的性能产生影响。
                  注意:即使采用aof的持久化策略,一旦内存崩溃,也会至少丢失一秒的数据
  • 相关阅读:
    最受欢迎的ASP.NET的CMS下载
    asp.net开源CMS推荐
    Oracle分组小计、总计示例(grouping sets的使用)
    PLSQL登录的时候Warning提示:Using a filter for all users can lead to poor performance!
    hibernate saveorupdate方法只有更新有效果,保存没有效果
    Hibernate的generator属性
    在oracle中存入date类型数据遇到的问题及其解决方法(利用java.sql.date和Timestamp)
    Hibernate更新、删除后数据库无变化
    Oracle执行update时卡死问题的解决方法
    Hibernate
  • 原文地址:https://www.cnblogs.com/renxiuxing/p/10198162.html
Copyright © 2011-2022 走看看