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

redis 入门笔记(一)

2016-01-08 21:22 841 查看
redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的web应用程序的完美解决方案
三个主要特点:
1,Redis数据库完全在内存中,使用磁盘仅用于持久性
2, Redis拥有一套较为丰富的数据类型
3, Redis可以将数据复制到任意数量的从服务器
Redis的优势:
1,异常快速,每秒能执行约11万集合,每秒约81000天记录
2,支持丰富的数据类型,可以支持strings---字符串,hashes , lists---链表,set---集合,and sorted sets,
3,操作都有原子性,保证了如果两个客户端同时访问Redis服务器将会获得更新后的值
4,多功能实用工具 ,可以有多个用途,例如缓存,数据库,消息,队列使用,任何短暂的数据,应用程序

NoSQL适用场景

1, 对数据高并发读写
2, 对海量数据的高效率存储和访问 ----fridfeed 网站----sql对亿级别的查询特慢
3, 对数据的高可扩展性和高可用性
应用场景:
1, 直接访问Redis:Application ----->Redis
2, 应用程序直接访问Redis,只有当Redis访问失败,才访问Mysql

Redis安装过程,比较简单,很多地方都有,在此不做介绍

启动redis
redis-server
默认端口时6379
进入redis客户端
redis-cli -h 127.0.0.1 -p 6379

redis 键命令
DEL key 删除键,如果存在
DUMP key 返回存储在指定键的值的序列化版本
EXSITS key 检查该键是否存在
EXPIRE key seconds 指定键的过期时间
KEYS pattern 查找和指定模式匹配的所有键 。 KEYS * 查看当前数据库的所有key
MOVE key db 把当前数据库的键移动到另一个数据库
PERSIST key 移除过期的键
TTL key 获取键到期的剩余时间
RANDOMKEY 从redis返回随机键
RENAME key newly 更改键的名称
TYPE key 返回存储键的数据类型的值
SELECT 0-16 选择数据库

stringshashes
指定键设置值SET key valueHSET key field value
获取键对应的值GET keyHGET key field
得到字符串的子字符串存放在一个键GETRANGE key start end
设置键的字符串值,并返回旧值GETSET key value
得到所有的给定键的值MGET key1 key2…HMGET key field1 field2…
设置键的值,只有当该键不存在时SETNX key valueHSETNX key field value
获得存储的键的值的长度SETLEN keyHLEN key
设置多个键和多个值MSET key1 value1 key2 value2HMSET key field1 vlaue1..
设置多个键多个值,只有在没有键存在时MSETNX key1 value1 key2 value2
设置键的到期时间PESTEX key value
增加键的整数值一次INCR key

由给定的数量递增键的整数值INCRBY key incrementHINCRBY key field increment
递减键的整数值一次DECR key
由给定数目递减键的整数值DECRBY key decrement
追加值到一个键APPEND key value
删除一个或者多个字段HDEL key field
判断一个值是否存在HEXISTS key field
让所有的字段和值在指定的键存储在一个哈希HGETALL key
获取所有字段HKEYS key
list
从一个列表其索引获取对应的元素LINDEX key index
在列表的其他元素之后或之前插入一个元素LINSERT key BEFORE/AFTER pivot value
获取列表的长度LLEN key
获取并取出列表的第一个元素LPOP key
在前面加上一个或者多个值的列表LPUSH key value1 value2
在前面加一个值列表,仅当列表中存在LPUSHX key value
从一个列表中获取各种元素LRANGE key start stop
从列表中删除元素LREM key count value
在列表中的索引设置一个元素的值LSET key index value
取出并获取列表的最后一个元素RPOP key
删除最后一个元素的列表,将其附加到另一个列表并返回它RPOPLPUSH source destination
添加一个或多个值多列表RPUSH key value1 value2…
添加一个值到列表,仅当列表存在时RPUSHX key value
setsorted set
添加一个或者多个值SADD key member1 member2ZADD key score1 member1 scoer2 member2
移除并返回一个随机memberSPOP key
返回set的member个数SCARD keyZCARD key

删除一个或者多个字段SREM key member1 member2ZREM key member1 member2
判断一个值是否存在SISMEMBER key member
获取所有字段SMEMBERS key
随机返回一个字段SRANDMEMBER key
将spurce中的member移动到destinationSMOVE source destination member
多个集合的并集SUNION key1 key2
把并集结果存储到新的setSUNIONSTORE destination key1 key2
多个集合的交集SINTER key1 key2
把交集结果存储到指定的setSINTERSTORE destination key1 key2
差集(以第一个集合为准)SDIFF key1 key2
在有序集合增加成员的scoreZINCRBY key increment member
一个有序集合与给定值范围的member个数ZCOUNT key min man
由索引返回一个成员范围的有序集合ZRANGE key start stop withscores
返回member在有序集合中的index(低到高)ZRANK key min max
返回member在有序集合中的index(高到低)ZREVRANK key min max
redis 支持简单的事务

MULTI 标记事务块的开始
EXEC MULTI后执行所发出的命令
DISCARD 清空MULTI队列并退出事务
UNWATCH 取消所有的对应关注键
WATCH key1 key2 关注给定项,以确定执行MULTI/EXEC 块
multi 之后再写命令,这些命令都回存在队列中 直到exec 才开始一条一条执行



只所以只是支持简单的事务,是因为如果队列中有多条语句,如果有语句执行失败,那么其他语句也会正常执行,不会回滚



这次主要整理了redis几种数据类型的命令,以及事务等基础概况,后续还会对其他方面进行记录。

我主要参考了一下资料
http://blog.csdn.net/love__coder/article/category/1304162
http://www.yiibai.com/redis/redis_quick_guide.html
http://edu.51cto.com/course/course_id-63.html?edu_recommend_adid=117 (视频)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: