Redis学习笔记(1)
2015-08-15 22:06
489 查看
开始我项目缓存用的memcached,但是一位大神推荐我用Redis。因为memcached不是持久化数据库。下面先说说memcached和Redis的区别。
Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
内存使用效率对比:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
学习redis,要先学习他的几个数据类型
先熟悉几个基础命令
进入redis客户端
redis是键值对存储方式 set key value
这样就把key为bar的值设为1
1 赋值与取值
2 递增数字
前面说过字符串类型可以存储任何形式的字符串,当存储的是整形时,就可以用的这个命令。
3 增加指定的整数
4 减少指定的整数
5 增加指定浮点数
6 向尾部追加值
7 获取字符串长度
8 同时获取/设置多个键值
9 位操作
一个字节是由8个二进制位组成,redisi供了4个命令操作
现将foo赋值
set foo bar
这是bar二进制的存储结构
Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
内存使用效率对比:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
学习redis,要先学习他的几个数据类型
先熟悉几个基础命令
进入redis客户端
redis-cli
redis是键值对存储方式 set key value
SET bar 1
这样就把key为bar的值设为1
KEYS × <span style="font-family:Microsoft Yahei,Helvetica Neue,Helvetica,Arial,sans-serif;">查找所有键 KEYS遍历所有键,如果数量多肯定会影响性能。所及不建议使用,可以这样写KEYS ba× 或KEYS bar</span>
EXISTS key 判断键存在,有返回1,否则返回0
DEL key [key....]<span style="font-family:Microsoft Yahei,Helvetica Neue,Helvetica,Arial,sans-serif;"> 删除一个或多个key 返回删除键的个数</span>
TYPE key 获取键值的数据<span style="font-family:Microsoft Yahei,Helvetica Neue,Helvetica,Arial,sans-serif;">类型,返回值可能String,hsah,list,set,zset。。。</span>
一 字符串类型
字符串类型是redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。字符串类型是其他四种类型的基础,其他数据类型和字符串类型的差别从某种角度来说就是组织字符串的形式不同。1 赋值与取值
SET key GET key 如果键不存在,返回空值
2 递增数字
前面说过字符串类型可以存储任何形式的字符串,当存储的是整形时,就可以用的这个命令。
INCR key 当键不是整数会报错,如果键不存在,默认为0
3 增加指定的整数
INCRBY key increment increment代表增加的数
4 减少指定的整数
DECR key DECRBY key decrement
5 增加指定浮点数
INCREBYFLOAT key increment
6 向尾部追加值
APPEND key value
7 获取字符串长度
STRLEN key
8 同时获取/设置多个键值
MGET key [key ....] MSET key value [key value...]
9 位操作
GETBIT key offset SETBIT key offset value BITCOUNT key [start] [end] BITOP operation destkey key [key...]
一个字节是由8个二进制位组成,redisi供了4个命令操作
现将foo赋值
set foo bar
这是bar二进制的存储结构
GETBIT foo 0 GETBIT命令是获得一个字符串类型键指定位置的二进制位的至(0或1),索引从0开始由左到右 如果索引超出了键值的二进制实际长度,默认返回0
SETBIT foo 6 0 SETBIT是设置二进制位的值
BITCOUNT foo BITCOUNT获得字符串键值是1的二进制位数个数
BITCOUNT foo 0 1 统计指定范围二进制个数
BITOP 这个命令是运算操作,支持AND,OR,XOR,NOT
相关文章推荐
- 【学习笔记】C++操作redis库
- Redis学习——环境搭建以及基础命令使用
- Redis的介绍
- Redis学习(6)-Redis高级实用特性
- redis安装过程中一些注意事项
- 小贝_php+redis类型组合使用
- 小贝_php+redis简单实例
- 小贝_redis 高级应用-持久化
- Redis入门
- Redis学习(5)-常用命令
- Redis学习(4)-数据类型set和zset
- Redis
- 3、Redis 集群特性之容错、数据迁移
- redis 学习笔记(二)
- redis安装使用教程
- Redis监控方案
- keepalived+redis HA方案
- 开源作品-PHP写的Redis管理工具(单文件绿色版)-SuRedisAdmin_PHP_1_0
- nodejs+nginx+mongdb+redis安装学习笔记(之redis安装)
- nodejs+nginx+mongdb+redis安装学习笔记(之mongodb3.0安装)