redis使用的是windows 64位的版本,下载地址如下:
http://download.csdn.net/detail/clarkkentyang/9735893
redis相关命令手册:
http://download.csdn.net/detail/clarkkentyang/9740103
一、redis定义:
使用C语言开发的一个高性能键值对数据库,通过键值对对数据进行存储。
1.启动redis:redis-server
2.修改端口:redis-server --port 6380
3.关闭redis:redis-cli shutdown
3.客户端登录:redis-cli
二、键值对类型:
1、String:允许存储的最大容量的512MB
a.设置值:set key value
b.获取值:get key
c.设置一个数值:set num 100
可以对num进行加1增长:incr num
增加指定数值(如100):incrby num 100
对num减1:decr num
对num减100:decrby num 100
d.增加浮点数:incrbyfloat num 1.1
e.在尾部添加值:append num 100
f.查看字符串长度:strlen num
g.设置多个键值对:mset key1 value1 key2 value2 key3 value3
h.获取多个键值对:mget key1 key2
i.取值并二次赋值:getset key1 revalue1
2、hash
a.给字段赋值:hset car price100
b.取值:hget car price
c.为多个字段赋值:hmset car name AODI price 90
d.取多个字段值:hmget car name price
e.获取所有键值:hgetall car
f.判断字段是否存在:hexists car name
g.字段不存在的时候赋值:hsetnx car model 2
h.为字段增加某数:hincrby car model 10
i.删除某字段:hdel car model
j.查看所有键值:hkeys car
k.查看所有值:hvals car
l.查看字段数量:hlen car
3、list
a.添加元素:
向列表左边添加元素:lpush numbers 1
向列表右边添加元素:rpush nunbers 2
可以添加多个元素,用空格分隔,返回的为列表元素的个数
b.弹出元素:
弹出列表左边的元素:lpop numbers
弹出列表右边的元素:rpop numbers
c.获取元素的个数:llen numbers
d.获取列表的片段(支持负索引,表示从右开始):lrange numbers 0 2
e.删除列表中指定元素的值:lrem numbers count value
count >0 ,从列表左边开始删除前count个值为value的元素
count =0 ,会删除所有值为value 的元素
count <0 ,从列表右边开始删除前|count|个值为value的元素
f.查看索引的值:lindex listName indexNumber
g.删除指定索引范围之外的所有元素:ltrim listName indexStart indexEnd
h.指定元素前(后)插入元素:linsert listName after(before) pivot value
i.将元素从一个列表转到另一个列表:rpoplpush listRemove listAdd
4、set
a,添加元素(可以添加多个):sadd key members
b,删除元素:srem key member
c,获取全部元素:smembers key
d,查看集合key中是否有元素member:sismember key member
e,集合间的运算:
求set1中不含set2的元素:sdff set1 set2
求set1和set2的相同元素:sinter set1 set2
求set1和set2的所有的元素:sunion set1 set2
f,求集合个数:scard set1
g.随机选取集合中的数:sramdmember set1
h.随机弹出一个元素:spop set1
5、sortedset
a.添加元素:zadd sortedset score member
b.修改元素:zscore sortedset score member
c.获取元素:zscore sortedset kaka
d.获取排名在某个范围的元素列表
(从小到大):zrange sortedset start end (withscores)
(从大到小):zrevrange sortedset start end (withscores)
e.获取指定分数范围内的元素:zrangescore sortedset min max limit offset count
如果不希望包含可以再分数前加“(”
支持正负无穷大:-inf +inf
从offset开始取count个元素:limit offset count
f.给某个元素增加分数:zincrby sortedset incrNumber member
g.获取元素个数:zcard sortedset
h.获取指定范围内元素的个数:zcount key min max
i.删除元素:zrem key members
j.按照排名范围删除元素:zremrangebyrank key start stop
k.按照分数范围删除元素:zremrangebyscore key start stop
l.获取元素排名:zrank key member
三、事务(redis事务不支持回滚功能):
1.开启事务multi,将下面的命令存起来(返回queued),然后执行exec命令执行整个事务的命令。
2.错误处理:
语法错误,事务连正确的命令都不会执行
运行错误,事务依旧会执行,
3.数据监控watch:监控一个或多个键,一旦其中一个被修改或者删除,之后的事务都不会执行。
unwatch:取消监控
四、过期时间:
1.设置过期时间(以秒为单位):expire session 900
返回1表示设置成功,返回0表示键不存在或者设置失败
2.查看键还有多长时间过期:ttl session
返回>=0:表示键还有多少秒过期
返回-1:表示没有设置过期时间
返回-2:表示查询的键不存在
3.设置成永不过期:persist session
对session重新赋值,也会将键设置为永不过期
五、排序:
1.sort命令:
普通排序:sort list
通过alpha实现参数:sort listalpha alpha
倒序可以使用desc实现
十四、应用场景:
1、缓存
2、分布式集群架构中的session分离
3、聊天室的在线好友列表
4、任务队列
5、应用排行榜
6、网站访问统计
7、数据过期处理
十五、基本操作:
1. redis-cli 连接到redis客户端
2. 设置一个名为world 为hello的键:set hello world
3. 查看所有键值对: keys *
4. 查看是否存在world(0表示不存在,1表示存在) :exists hello
5. 删除键值对:del hello
6. 查看键值的类型:type hello
十六、持久化方式:
1.Rdb方式:redis默认方式,通过快照将数据持久化到磁盘中
redis.windows.conf中可以修改相关参数:
a.保存条件
save 900 1
save 300 10
save 60 10000
b.保存名称:dbfilename dump.rdb
c.保存路径:dir ./
缺点:如果redis非法关闭,会丢失最后一次持久化之后的数据
2.Aof方式:
操作一次数据,存储持久化文件中。
a.开启Aof持久化方式:redis.windows.conf配置文件中 appendonly yes
十七、主从库复制
主机进行增删改操作,从机会将数据进行同步,从机只有读权限。
1.主机配置:不需要配置
2.从机配置:修改redis.windows.conf中的 # slaveof <masterip> <masterport> 注释去掉,改为slaveof IP地址 端口号