zoukankan      html  css  js  c++  java
  • radis

    Redis

    REmote DIctionary Server(远程字典服务器)

    是完全开源免费的,用C语言编写的,遵守BSD协议,

    是一个高性能的(key/value)分布式内存数据库,基于内存运行

    并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,

    也被人们称为数据结构服务器

     

    作用:

    1:内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务

    2:取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面

    3:模拟类似于HttpSession这种需要设定过期时间的功能

    4:发布、订阅消息系统

    5:定时器、计数器

     

    特点:

    1: Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用

    2: Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储

    3:Redis支持数据的备份,即master-slave模式的数据备份

     

    如何获取redis

    1: http://redis.io/

    2: http://www.redis.cn/

     

    Key关键字指令

    常用指令:key

    Keys *:指令   查看当前这个库中所有的key值

    exists key名字:  判断某个key值是否存在 0表示不存在 1表示存在

    move  key名字 数据库的索引下标: 将某个值移除到指定的库中

    Redis默认有16个库,我们可以通过修改redis配置文件redis.conf来改变库的数量

    Select 下标可以切换不同的数据库: select 下标

    expire key名字 秒:设定指定的key的存活时间

    ttl  key名字:查看当前的key还有多少存活时间 -1 表示永不过期,-2表示已经过期

    type  key名字: 查看当前key的类型(key String,Object)

     

    String类型数据指令

    Set  key名字  value值: 设置单一键值对(key值相同会覆盖原来的值,类似于map集合)

    Get  key名字 :获取指定key的值

    Del  key名字 :删除指定名称 key

    Append  key名字 新值: 在原有的值的基础上添加新的值

    Strlen  key名字: 获取字符串的长度

     

    (value值必须是数字)

    Incr(value值自动加1) : incr  key名字;

    decr(value值自动减1) :decr key名字;

    incrby 递增值: incrby key名字 数字;

    decrby 递减值:decrby key名字 数字;

     

    Getrange  : GETRANGE key  start  end: 获取value值的一部分

    Setrange :SETRANGE key  起始位置  值: 从起始位置开始替换值

    Setex: SETEX key名字 存活时间 值: 设定一组值同时设定存活时间(单位秒);

    Setnx: SETNX key名字 值: 设置永久存活的一组值。(key值冲突无法存入值--返回值为0)

    Mset: mset key 值 key 值....  一次设定多组值,如果key值存在也会覆盖

    Mget: mget key  key  一次获取多个key的值

    Msetnx: 一次设定多组key值,如果有key值存在无法添加完成

     

    List类型(添加  删除内容):

    Lpush: 向集合中添加内容  lpush 集合的名字 值 显示的顺序和添加的顺序相反。

    Rpush: 向集合中添加内容  rpush 集合的名字 值 添加顺序就是显示顺序

    Lrange  集合的名字 起始位置  结束位置(-1代表到集合的末尾)

    Llen: llen 集合的名字 查看集合的长度  

    Lpop:  lpop 集合的名称  移除集合中的第一个元素

    Rpop: rop 集合的名称移除集合中的最后一个元素

    lindex : 获取制定索引的值   lindex 集合的名称  索引数值

    Lrem :删除指定数量的值: lrem 集合的名称  个数 值(集合中有重复值);

     

    Set集合

    Sadd:添加值 sadd  集合名称  值....

    Smembers:查看值 smembers  集合名称

    Scard : 集合中元素个数  scard  集合名称

    Srem : 删除集合中的某个值  srem  集合名称  值;

    SPOP: 随机从集合中移除一个数据   spop 集合名称

    Smove: 将集合中的某个值赋给另外一个集合: SMOVE 集合1 集合2  值;

    Sdiff: 差集

    Sinter:交集

    Sunion:并集

     

    Hash(哈希)(key value(key value))

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

    Hset:存放一组键值对  hset key 值的名称  具体的值;(重复添加会覆盖原来的值) 

    Hget:获取一个值: hget key 值的名称

    Hmset: 设定多组键值对 HMSET customer id 1 name zs address beijing

    Hmget: 获取过个键对应的值 hmget customer id name address

    Hgetall: 获取所有的数据 hgetall  key值;

    Hdel: 删除某个指定的key的一组value  hdel customer id

    Hlen: 当前的key 有几组对应的键值对

    Hexists: 判断当前key中是否有指定名称的键值对: hexists customer id;

    Hkeys:获取所有的key

    Hvals: 获取所有的值

    Hincrby: 增加指定步长的数据  hincrby customer age 2;

    Hincrbyfloat: 在原有的基础上增加指定的小数。 hincrbyfloat customer course 0.5

    Hsetnx: 如果value中的key重复不能添加到集合中。

     

    Zset

    zset(sorted set 有序集合) 是string类型的有序集合,也不可重复

    sorted set中的每个元素都需要指定一个分数,根据分数对元素进行升序排序,如果多个元素有相同的分数,则以字典序进行升序排序,sorted set 因此非常适合实现排名

    Zadd:创建集合并设定标准 zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5(等级划分的数据)

    游戏 : 青铜  白银 黄金。。。

    普通 vip

    Zrange: 查询所有的标准 ZRANGE zset01 0 -1 , ZRANGE zset01 0 -1 withscores

    ZRANGEBYSCORE :根据分数查询内容

    ZRANGEBYSCORE zset01 60 90 (注意如果前面添加”(” 表示不包含节点的意思) withscores limit 起始位置 数量.zrangebyscore zs01 (10 30

    Zrem :删除元素 zrem 集合  某score下对应的value值。ZREM zset01 v5

    Zcard: 统计有几个键值对 zcard 集合

    Zcount: zcount 集合 数值1 数值2  统计区间的值

    Zrank : 统计对应的下标  zrank 集合名 values  zrank zs01 v3 

    Zscore : zscore  集合名  values 获取对应的分数   zscore zs01 v1

     

    事务控制

    开启事务:

    Multi

    提交事务

    Exec

    回滚事务

    Discard

    Redis事务不具备原子性,只要是正常执行的指令就会正常执行,遇到错误跳过错误,后面指令继续执行。

     

     

  • 相关阅读:
    JAVA IDE IntelliJ IDEA使用简介(一)—之界面元素
    ASP.NET MVC的运行机制--url的全局分析
    ASP.NET MVC
    [Android 新特性] 15项大改进 Android 4.4新特性解析
    [Android Pro] activity-alias的使用
    [Android Pro] 控制硬加速 hardwareAccelerated 在3.0才有的
    [Android Pro] Android中IntentService的原理及使用
    [SQLite] SQLite学习手册(数据库和事务)
    [Android UI] ActionBar 自定义属性
    [Android Memory] App调试内存泄露之Context篇(下)
  • 原文地址:https://www.cnblogs.com/masterhxh/p/13044302.html
Copyright © 2011-2022 走看看