redis学习01--基础知识

重要站点

redisdoc.com
http://www.runoob.com/redis/redis-tutorial.html

1.基础知识

1.redis由16个库(编号0-15,默认使用第0个)
2.查看当前库的数量:dbsize
3.切换到5号库:select 5
4.查看所有的键值:keys *
5.清库(清所有):flushall 清当前库:flushdb
这里写图片描述

2.key的用法

1.redis存储数据通过 set key value, 获取数据通过get key
2.用法
1.判断key(在此key名为k1)是存在:exists k1
2.移动k1到3号库:move k1 3
3.给指定key设置过期时间:expire k1 秒数
4.查看key剩余多少秒过期(返回-2表示过期,-1永远不过期,过期的会被删除,无法通过get获取):ttl k1
5.删除key:del k1
6.查看key的类型: type key
这里写图片描述
这里写图片描述

3.数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

string(字符串)

1.给value追加一个字符串:append k1 字符串
2.获取value的长度:strlen key
3.对value进行加减1(只能对数字有效):incr/decr key
4.对value进行加减某个数(举例x):incrby/decrby key x
5.截取从x到y的值(按下标截取字符串):getrange key x y
6.一次设定多个键值:set k1 v1 k2 v2 k3 v3
7.一次获取多个key:mget k1 k2 k3
8.一次设定多个(多个key都不存在的时候):msetnx k1 v1 k2 v2
这里写图片描述
这里写图片描述
这里写图片描述

list(常用)

1.放入lpush:lpush list01 0 1 2 3 4 5 取出结果为: 5 4 3 2 1 0
2.取命令lrange:lrange list01 0 -1
3.放入rpush:rpush list01 0 1 2 3 4 5 取出结果为:0 1 2 3 4 5(放入的顺序和取出来的顺序相同)
4.每次取出一个(栈顶的,并且取出来后原来的list就会减少):lpop list01 结果为:5
rpop每次取出来一个(栈底的)
5.lindex list01 x取出list01中下标为x的值
6.llen list01 获取list01的长度
7.lrem list01 x value 删除list01中x个值,比如:lrem list01 2 3 删除list01中的2个3
8.ltrim list01 x y 取出list01中下标从x到y的值,并重新赋值给list01
9.rpoplpush list01 list02 将list01中的栈底元素移动到list02的栈顶
10.lset list01 index value 将list01中下标为x的值替换成为value
11.linsert list01 before/after 值1 值2 在值2前插入值1

set(重要)

和list的区别是不会有重复的,如果插入存在重复之暴露之前的
1.sadd set01 1 2 3 4 5 结果为:1 2 3 4 5
2.smembers set01 取出
3.sismember set01 value 判断value是否是set01的成员
4.scard set01 获取集合中元素的个数
5.srem set01 value 删除集合set01的value元素,是返回1
6.srandmember set01 x 在set01中随机取出x个数(取出后原来的还存在)
7.spop list01 随机取出一个(原来的没了)
8.smove set1 set2 set1的value 将set1的value赋值给set2
9.差集:sdiff sdiff set1 set2 取set1和set2中的交集;同理,并集:sunlon;交集:sinter

hash(非常重要)

key value 模式不变,但是value是一个键值对
1.存:hset user id 66
2.取:hget user id 结果为66
3.设置多个:hmset user name xie id 1 age 25
4.获取多个:hmget user name id age 结果为:xie 1 25
5.全部取出:hgetall key 结果为: key value key value…
6.删除:hdel user name 删除user 中的name(注意del会把整个user删除)
7.获取长度:hlen user
8.hexists user id 判断user 的id是否存在
9.hkeys user 获取user 的所有key
10.hvals user 获取user 的所有值
11.hincrby/hincrbyfloat user age 2 将user 的age增加2 (float加小数)
12.hsetnx user name xie 不存在则加入
这里写图片描述

zset

在set的基础上加一个score值,之前set k1 v1 v2 v3,现在zset k1 score v1 score v2
1.zadd zset01 60 v1 70 v2 80 v3 90 v4
2.zrange zset01 0 -1 结果为:v1 v2 v3 v4
3.zrange zset01 0 -1 withscores 结果为 v1 60 v2 70 v3 80 v4 90,值跟分数都取出
4.zrangebyscore zset01 开始score 结束score zrangebyscore zset01 70 80 结果为:v2 v3
5.zrangebyscore zset01 (70 80 结果为:v2 v3 结果为:v3 (表示不包含,大于70到小于等于80
6.zrangebyscore zset01 70 90 limit 2 3 对取出的结果,再从结果下标2开始取出3个
7.zrem zset01 v3 删除
8.zcrad/zcount 统计 zrank zscore
9.zrevrank key value 逆序获得下标值
10.zrevrang 逆序获得所有 v
11.zrevrangebyscore key 结束分数 开始分数

猜你喜欢

转载自blog.csdn.net/wu_0916/article/details/78948034