redis常见数据类型操作命令
可参考地址:Http://redisdoc.com/
Java中使用Jedis操作Redis:
https://www.cnblogs.com/liuling/p/2014-4-19-04.html
- keys * 查看当前库的key的名字
- exists key的名字 :判断某个key是否存在,返回1表示这个key存在,0表示不存在
- move key的名字 db(指定的库): ---->>把当前库中的剪切到其他的库
例如: move k1 2 - expire key的名字 时间(以秒为单位): 为给定的key设置过期时间
- pexpire key的名字 时间(以毫秒为单位):跟expire的作用一样
- ttl key的名字:查看还有多少秒过期,-1表示永不过期,-2表示已经过期
- type key的名字:查看你的key是什么类型
-
set key名字 value值:给key赋值
-
get key名字:从key中取值
-
append key value:在原有的value后面追加
append k1 12345 -
strlen key:查看当前value的长度
strlen k1 -
incr key:递增 每次+1
-
decr key:递减 每次-1
-
incrby key 步长:每次递增步长的长度
-
decrby key 步长:每次递减步长的长度
注意:关于递增,递减的操作只针对整数数字有效。5、6、7、8是一组。 -
getrange key: 开始下标 结束下标:获取指定区间范围的值,类似between…and,结束下标为-1表示全部。
getrange k1 0 -1
getrange k1 0 3 -
setrange key: 开始下标 替换的内容:设置指定区间范围的值
setrange k1 1 xxx:针对k1从第二位开始替换三个xxx -
setnx key value:先判断当前key是否存在,存在则报错,不存在才会进行创建。相当于–>exists+set
- lpush 集合的key名 value1 value2 value3… :给一个列表赋值,当取值的时候从后往前取
- rpush 集合的key名 value1 value2 value3… :给一个列表赋值,当取值的时候从前往后取
- lrange 集合的key名 开始下标 结束下标:从一个列表中取值,结束下标为-1表示全部
- lpop 集合的key名: 用于移除并返回列表的第一个元素
- rpop 集合的key名: 用于移除并返回列表的最后一个元素
- lindex key 索引:按照索引下标获得元素(从上到下)
例如:lindex list1 2 - lrem key 删除个数 删除的value:在指定的列表中删除指定个数的value
lrem list1 2 3:表示我要从list1中删除2个value是3的对象。 - ltrim key 开始下标 结束下标:截取指定范围的值后再赋给当前key
ltrim list1 0 3:从list1中从0开始截取 ,截取3位再赋给list1 - lset key 下标 value:给指定的下标赋值
lest list1 1 x:表示在list1中下标为1的位置赋值为x - linsert key before/after 即将在哪添加的value 插入的value2:在指定的位置插入数据
例如:linsert list1 before x java:在list1中x的前面插入java
- sadd key value1 value2…:添加set集合
- smembers key:返回集合中的所有成员
- sismember key value:判断成员元素是否是集合的成员
- scard key:获取集合里面的元素个数
- srem key value:删除集合中的元素
- srandmember key 某个整数:随机出几个数
- spop key:随机出栈(出一个)
- smove key1 key2 在key1中的某个值:作用是将key1里的某个值赋给key2
- 数学集合类:
1. sdiff 差集:sdiff key1 key2 :在第一个set里面而不再后面任何一个set里面的项
2. sinter 交集:sinter key1 key2 : 两个set都有的值
3. sunion 并集:sunion key1 key2:两者合并去重
-
redis哈希(Hash):key-value的模式不变,但V是一个键值对
-
hset:设置hash集合中的数据 :格式:hset user id 11 (只能设置一个属性)
-
hget:获取hash集合中的数据 :格式:hget user id
-
hmset:设置hash集合中的多个数据:格式:hmset user id 11 name lisi age 15
-
hmget:获取多个数据:格式:hmget user id name age
-
hgetall:以key-value的方式获取hash集合中的数据:格式:hgetall user
-
hdel:删除hash集合中的一组键值对:格式:hdel user name
-
hlen:获取当前hash集合的长度:格式:hlen user
-
hexists key 属性名 :在key里面是否有某个值的key:格式:hexists user id
-
hkeys:获取hash中的所有key:格式:hkeys user
-
hvals:获取hash中的所有value:格式:hvals user
-
hincrby:对hash中的某个key的value 进行递增(注意只能是数字, 增量也可以为负数,相当于对指定字段进行减法操作。): 格式: hincrby user age 2
-
hincrbyfloat:对hash中的某个key的value 进行递增(注意只能是浮点型):格式:hincrbyfloat user score 0.5
- redis有序集合Zset(sorted set):在set基础上,加一个score值,
之前set是 k1 v1 v2 v3,现在是k1 score1 v1 score2 v2 - zadd:添加一个zset集合
格式:zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5 - zrange:获取一个zset集合的元素
格式:zrange zset01 0 -1
输出结果:v1 v2 v3 v4 v5
这个时候只显示了值,没有显示分数,如果需要都显示需要在方法的后面加上 withscores
格式:zrange zset01 0 -1 withscores
输出结果:v1 60 v2 70 v3 80 v4 90 v5 100 - zrangbyscore:在zset集合中截取元素
格式:zrangebyscore key 开始score 结束score ((不包含,limit ? ?返回限制)
zrangebyscore zset01 60 90 limit 2 2
- zrem :删除元素
格式:zrem zset01 v5 - zcard:统计zset的个数
格式:zcard zset01 - zcount:统计score区间的个数
格式:zcount zset01 60 80 - zrank:获取下标值
格式:zrank zset01 v4 - zscore:获取key对应的数值
格式:zscore zset01 v4