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命令可以修改任何其他类型键,但是改后类型就变成字符串类型了。
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命令可以修改任何其他类型键,但是改后类型就变成字符串类型了。
相关文章推荐
- 01Redis学习
- Redis学习-String
- Redis学习笔记之NoSQL
- 发布与订阅消息--Redis学习笔记八
- 【Redis学习】:string数据类型详解
- Redis学习总结(1)——Redis内存数据库详细教程
- 【Redis学习】:sortedset数据类型详解
- Redis学习资料参考地址
- redis 学习笔记
- Redis学习--Hash类型
- Redis 学习笔记
- 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装
- redis 学习笔记(4)-HA高可用方案Sentinel配置
- Redis学习笔记-Java连接Redis
- 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装以及操作redis问题整理
- Jedis(Java操作Redis)入门学习总结
- Redis学习手册(目录)
- Redis学习之zsets类型及操作
- Redis理论学习——NoSQL数据库总结
- redis学习