zoukankan      html  css  js  c++  java
  • Redis

     Redis——它是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,我们可使用它构建高性能,可扩展的Web应用程序。

    特点:

    1. 支持更多的数据类型,除了和String外还支持lists(列表),sets(集合)和zsets有序集合。异常快速:redis数据库完全在内存中,因此速度很快。数据持久化:支持数据持久化,可以将内存中的数据存储在磁盘上。支持丰富的数据类型:相比许多其他的键值对数据类型,redis拥有丰富的数据类型。数据一致性:所有的redis操作都是原子的,如果两个客户端同事访问redis服务器将获得更新后的值。多功能使用工具:redis是一个多实用的工具,可以在多个例如缓存,消息,队列使用(redis原生支持发布/订阅),任何短暂的数据,应用程序,例如web应用程序回话,网页命中计数

    string(字符串)

    1. SET:string是redis中最基础的数据类型,SET的指令是将字符串value关联到key。语法格式:SET key value
    2. SETEX:SETEX指令试讲value关联到key,并将key的生存时间设为seconds(以秒为单位)。语法格式:SETEX key seconds value
    3. GET:GET指令返回key所关联的字符串值,如果key不存在,那么返回特殊值nil,如果key存储的值不是字符串类型,返回一个错误,因为GET只能用于处理字符串值,语法格式:GET key
    4. APPEND:如果key存在并且是一个字符串,APPEND命令会将value追加到key原来的值末尾。语法格式:APPEND key value
    5. MSET:同时设置多个key-value对,语法:MSET key value [key value ...]
    6. MGET:同时获取多个key的值,语法:MGET key [key...]
    7. SETRANGE:覆写给定的key,从偏移量offset开始,语法SETRANGE key offset value
    8. STRLEN:获取key的长度,语法:STRLEN key
    9. 其他不常用的指令:GETSET:设置键的字符串值,并返回旧值。GETRANGE:得到字符串的子字符串存放的一个键。GETBIT:对key所村粗的字符串值,获取指定偏移量上的位(bit).SETBIT:对key所存储的字符串值,设置或清除指定偏移量上的位。SETNX:将key的值设为value,当且仅当key不存在。MSETNX:同时设置一个或多个key-value对当且仅当给定的key都不存在。PSETEX:和SETEX命令相似,但他一毫秒的单位设置key的生存时间,而不是像SETEX命令那样,一秒为单位。INCR:将key中村粗的数字值增一。INCRBY:将key所存储的值奖赏指定增量。INCRBYFLOAT:将key中所村粗的值奖赏指定浮点数增量。DECR:将key中村粗的数字值减一。DECRBY:将key所存储的值加上指定增量

    hash(哈希表)

    1. redis的哈希值是字符串字段和字符串值之间的映射
    2. HSET:使用HSET将哈希表key中的域filed值设为value,语法:HSET key field value
    3. HMSET:设置对个field-value对设置到哈希表的key中,语法:HMSET key field value [field value ...]
    4. HGET:获取指定域key的值,语法HGET key field
    5. HMGET:一次性获取哈希表key中,一个或多个给定域的值,基本语法:HMGET key field [field ...]
    6. HGETALL:获取所有的域值,语法:HGETALL key
    7. HEXISTS:判断一个key是否存在某个field中,基本语法:HEXISTS key field。存在返回1,不存在返回0
    8. HEKYS:使用HKEYS来获取哈希表key中所有的域,基本语法:HEKYS key
    9. HLEN:返回哈希表key中域的数量,语法:HLEN key
    10. HDEL:删除哈希表key中的一个或多个指定域,语法HDEL key field [field ...]

    list(列表)

    1. Redis 列表是简单的字符串列表,按照插入顺序排序。
    2. LPUSH:是将一个或多个value插入到列表key的表头,语法:LPUSH key value [value ...]
    3. LSET:将列表key下标为index的元素的值设置为value,语法:LSET key index value
    4. LPOP:移除列表第一个元素,语法:LPOP key
    5. LINDEX:获取指定下标的key,语法:LINDEX key index。0表示第一个,1表示第二个,-1表示最后一个
    6. LINSERT:将值value插入到列表key当中,位于值pivot之前或之后,语法:LINSERT key BEFORE|AFTER pivot value
    7. LREM:移除列表某个value值count次,语法:LREM key count value。 count为0,移除列表中所有与value相等的值,count》0,从表头开始搜索移除value,数量为count,count<0,从表尾开始,移除value值数量为count
    8. LLEN:获取列表的长度,语法:LLEN key
    9. LTRIM:对列表裁剪,语法:LTRIM key start stop

    set(集合)

    1. 集合(set)是一个无需的字符串集合,可以快速添加,删除以及测试元素是否存在
    2. SADD:将一个或多个member元素加入到key当中,语法:SADD key member [member ...]
    3. SPOP:随机取出集合中的某个元素。语法:SPOP key
    4. SMEMBERS:获取集合中所有的元素。语法:SMEMBERS key
    5. SCARD:查看集合元素中的数量.语法:SCARD key
    6. SDIFF:比较多个集合,取得连个之间不同的元素。SDIFF key [key ...]
    7. SINTER:获取集合的交集,语法:SINTER key [key ...]
    8. SUNION:获取集合的并集,语法:SUNION key [key ...]
    9. SISMEMBER:判断某个元素是否在一个集合中,语法:SISMEMBER key member
    10. SMOVE:移出某个元素,语法:SMOVE source destination member
    11. SREM:移除元素,语法:SREM key member [member ...]

    zset(有序集合)

    1. Redis 有序集合与普通集合非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分,这个评分被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但评分可以重复。

      使用有序集合你可以以非常快的速度 添加 、 删除 和 更新 元素。因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。

      访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表。在有序集合中,你可以很快捷的访问一切你需要的东西:有序的元素,快速的存在性测试,快速访问集合的中间元素! 简而言之使用有序集合你可以做完成许多对性能有极端要求的任务,而那些任务使用其他类型的数据库真的是很难完成的。

    2. ZADD:将一个或多个member元素及其score值加入到有序集key当中,语法:ZADD key score member [[score member] ...]
    3. ZREM:移除指定成员,语法:ZREM key member [member ...]
    4. ZSCORE:获取集合中某个元素的分数,语法:ZSCORE key member
    5. ZRANGE:获取集合的成员,语法:ZRANGE key start stop [WITHSCORES]
    6. ZCARD:查看成员数量,语法:ZCARD key
    7. ZCOUNT:查看评分之间的成员,语法:ZCOUNT key min max
    8. ZRANK:依据评分对集合中的元素进行从小到大排序,语法:ZRANK key  member
    9. ZINCRBY:给指定元素增加评分,语法:ZINCRBY keyincrement member

    key

    1. KEYS:查找所有符合给定模式pattern的key,语法KEYS pattern
    2. EXISTS:判断key是否存在,语法EXISTS key
    3. MOVE:将当前数据库的key移动到给定的数据库db当中,语法:MOVE key db
    4. RENAME:将原有的key修改为新的key名称,语法:RENAME key newkey
    5. SORT:可以返回或保存给定列表,集合,有序集合key中经过排序的元素,语法:SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]
    6. DUMP:可以对给定key进行序列化,语法:DUMP key
    7. EXPIRE:为key设置生成时间,语法:EXPIRE key seconds
    8. TTL:获取key的剩余生存时间,语法:TTL key
  • 相关阅读:
    CF_402C Searching for Graph 乱搞题
    zoj Simple Equation 数论
    zoj 3757 Alice and Bob and Cue Sports 模拟
    uva_12535
    boj1267 Infinite’s Cave 树形dp + 背包
    CF_216_Div_2
    nxlog4go 简介
    log4go的一些改进设想
    nxlog4go 的配置驱动
    nxlog4go Log Levels and Pattern Layout
  • 原文地址:https://www.cnblogs.com/mooniitt/p/6757674.html
Copyright © 2011-2022 走看看