redis总结一

http://edu.51cto.com/lesson/id-853.html
1:官网下载https://github.com/MSOpenTech/redis/releases
2:学习网站
http://jingyan.baidu.com/article/f25ef2546119fd482c1b8214.html
http://www.yiibai.com/redis/redis_quick_guide.html
3:
Redis 有三个主要使其有别于其它很多竞争对手的特点:
Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的;
Redis相比许多键值数据存储系统有相对丰富的数据类型;
Redis可以将数据复制到任意数量的从服务器中;

4:
Redis优点
异常快速 : Redis是非常快的,每秒可以执行大约110000设置操作,81000个/每秒的读取操作。

支持丰富的数据类型 : Redis支持最大多数开发人员已经知道如列表,集合,可排序集合,哈希等数据类型。

这使得在应用中很容易解决的各种问题,因为我们知道哪些问题处理使用哪种数据类型更好解决。
操作都是原子的 : 所有 Redis 的操作都是原子,从而确保当两个客户同时访问 Redis 服务器得到的是更新后的值(最新值)。

MultiUtility工具:Redis是一个多功能实用工具,可以在很多如:缓存,消息传递队列中使用(Redis原生支持发布/订阅),在应用程序中,如:Web应用程序会话,网站页面点击数等任何短暂的数据;

5:http://www.runoob.com/redis/redis-intro.html
6:
Redis与其他key-value存储有什么不同?
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,应为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
7:运行
打开一个cmd窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe redis.conf 。
这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。
切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 。
设置键值对 set myKey abc
取出键值对 get myKey

8:
Redis 数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
详情见:http://www.runoob.com/redis/redis-data-types.html -----------重要----------


9:命令
运行服务器端
redis-server.exe  服务器启动了
运行客户端
redis-cli
运行远程客户端
$ redis-cli -h host -p port -a password


string类型
1:set 方法,不能相同,如果相同会覆盖
如 set name name
   set name name1
   get name --name1

setnx 看是否存在,如果存在返回0,不成功,如果不存在返回1,成功
setex color 10 red ,设置color red 有效期10秒
setrange 设置字符串
mset 一次性设置多个值
getset 设置一个新值,并返回就值
getrang 获取字符串
mget批量获取
incr 自增
incrby key6 5 自增5jian
incrby key6 -5 自减5
decr 自减
decrby
append 追加
strlen 查看字符串长度


2:hashes数据类型,适合存对象
hset use:001 name lj
hget user:001 name
hsetnx 存在返回0不成功,不存在返回1成功
hmset 批量设置
hmget 批量获取
hincrby 某个键自增
hexists 字段是否创造  hexists user:003 name
hlen hash的 键字段 的数量
hdel 删除hash 的字段
hkeys 返回所有的建字段
hvals 返回所有的值
hgetall 获取全部的键值对

3:list,双向链表,即可是栈(先进后出),又可以是队列(先进先出)
lpush 头部压入元素 lpush mylist hell (先进后出)
lrange 取元素

rpush 尾压入,先进先出
lrange  mylist 0 -1

linsert 在指定位置压入元素
lset 设置指定元素的值
lrem 删除值
ltrim 保留key的值范围内的数据
lpop
rpop 弹出元素

rpoplpush

lindex 索引位置的值
llen 链表的长度

4:set,集合中不允许有重复的值,无序的,随机添加进去的,取元素只能随机取
sadd 向集合中添加元素
sadd myset s1
sadd myset s2
srem 删除
smembers myset 查询集合中的值
spop 随机弹出一个元素(因为是无序计划)
sdiff 两个集合的差集
sinter 两个计划的交集
sinterstore
smove 集合1 莫个元素 移动到集合2
sismember
srandmember 随机取元素不删除

5:zset  sorted sets 有序计划,是set的升级版本,
zadd 添加元素,如果存在,修改为新顺序
zadd myset 1 one
zadd myset 2 my

zrange myset 0 -1 withscores 取元素
zrem 删除指定元素
zincrby  增加元素,存在修改顺序号,不存在则增加
zrank 重小到大排序
zrevrank 从大到小排序
zrangebyscore
zcount
zcard 返回集合中的元素个数
zremrangebyrank 删除区间的元素

6:redis常用命令
6.1建值命令
keys * 所有的建
keys my*

exists 确认一个key是否存在
exists name

del 删除一个建

expire 设置建的过期时间
ttl 建 查看还有几秒过期,返回-1表示已过期

move 数据库中的key转移到其他数据库中

select 0 选择到0数据库
move 1 转到1数据库
persist 取消过期时间
randomkey 随机返回数据库里面的建
type 返回建的数据类型

7:服务器相关命令
ping 测试服务器连接是否存活
ping pong 表示存活
echo 打印命令

select 选择数据库 0-15数据库
quit 退出连接
dbsize 返回当前数据库所有key的数目
info 返回数据库信息
config get 实时转储收到的请求
flushdb 删除当前选择数据库中的所有key
flushall 删除所有数据库中的所有key


8:redis 高级使用特性
1:安全性,2:主从复制,3:事务处理,4:持久化机制,5:发布订阅信息,6:虚拟内存的使用
1:设置密码
redis.windows-service.conf
修改配置文件 requirepass  密码
修改后重启服务器

进来授权
auth 密码

用密码登陆直接授权
redis-cli -a 密码

2:主从复制
slavcof ip 端口号
masterauth 密码 主机授权命令

info 命令可以看主,从服务器
role:slave
role:master

3:事务处理
multi 事物 exec 顺序执行所有命令
discard 取消所有命令,事物回滚

4:持久化机制
1:快照,数据写入2进制文件中,配置文件有多少个key修改,就保存快照(默认)
2:aof方式,如果机器挂掉最后的快照会丢失,aof保存的是每次的操作

5:发布订阅信息
6:虚拟内存










































猜你喜欢

转载自zqs520.iteye.com/blog/2335545