您的位置:首页 > 数据库 > Redis

Redis学习

2017-03-20 22:03 106 查看
Redis是一个开源的高性能键值对数据库。他通过提供多种键值数据类型来适应不用场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。

Redis是REmote DIctionary Server(远程字典服务器)的缩写。
Redis中的键值可以是多种类型:
字符串类型
散列类型
列表类型
集合类型
有序集合类型
Redis与Memcached的区别:
     Redis
          性能:单线程模型,
          功能:支持高级数据类型和持久化
          作为缓存系统,Redis还可以限定数据占用的最大内存空间,数据达到空间显限制后按规则淘汰不需要的键。键值的不同类型可以实现对应功能(如列表类型支持阻塞式读取)。redis还支持消息模式,可构建聊天室等系统。

     Memcached
          性能:支持多线程,在多核服务器上性能更高。

Redis提供了一百多个命令,但常用的只有十几个。
重点:《Redis入门指南》2.5 多数据库
Redis默认支持16个数据库(一个数据库也就是一个字典),每个数据库对外都是以数字为代号存在的(Redis不支持自定义数据库名字,每个数据库都以编号命名),从0开始依次递增。客户端与Redis建立连接后会自动选择0号数据库。
Redis没有访问权限控制,不支持数据库不同密码;用户要么可以访问所有数据库,要么都不能访问。
Redis一个实例中存储同一个应用的数据。
Redis键名可以用   “ : ”,“ . ”
Redis不支持数据类型嵌套。
 
Redis命令
KEYS   ? / * / [] / \x 等通配符,KEYS key   查询匹配的键
     KEYS 命令会遍历Redis中的所有键,当键数量过多的时候回影响性能,不建议在生产环境中使用。
EXISTS key
判断一个键是否存在 存在返回1,否则返回0。
DEL key [key.......] 删除一或多个键,返回的是成功删除的个数。
TYPE key 获取此键值的数据类型。
     string(字符串)hash(散列)list(列表)set(集合类型)zset(有序集合)

字符串类型:
get 、set 、INCR(递增)、







以下为发布文章的Redis操作:



其他命令:INCRBY key increment(与INCR不同的是可以用increment参数指定一次增加的数值)
                  DECR key                     (让键值递减)
                  DECR key increment    (让键值以指定数值递减)
                  浮点、追加、长度、获取多个MGET,MSET、位操作。其他参见:3.2.4 命令拾遗

散列类型:H,HM(这里的M是MORE的意思)
           




HSET不区分插入和更新,插入返回1,更新返回0。
散列的作用就是字典项,可以放入对象,每个对象都可以自定义属性。

列表类型:L
列表类型适用于栈或者队列。LPUSH,LPOP 或者RPUSH,RPOP
其他命令:LLEN key(获取列表元素个数)
                  LRANGE key start stop (获取片段)
                  LREM key count value (删除列表中指定的值)
                
集合类型:S
SADD 增加 SREM 删除
集合中不能有重复元素,如果加入已经存在于集合中的元素会自动忽略这个值(不是覆盖,是忽略)。
其他命令: 获取集合中所有元素,判断是否在集合中,集合间运算(差、交、并集),

有序集合类型:Z

添加  
     ZADD KEY SCORE MEMBER
获取  
     ZSCORE KEY SCORE
获得某个范围内的元素 
ZRANGE key start stop  (WITHSCORES)      从小到大的顺序给出结果
包含两端元素,索引从零开始,负数代表从后向前查找;-1表示最后一位。WITHSCORES表示带值输出。
ZREVRANGE key start stop    从大到小的顺序给出结果

使用一种类型的命令操作另一种类型的键会报错,但set命令可以修改任何其他类型键,但是改后类型就变成字符串类型了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: