redis客户端无法显示中文的 情况下 使用 redis-cli --raw 启动客户端
一、keys常用命令:
1.keys* :查看redis中所有的key
2 dbsize:查看redis中key的个数
3 keys [pattern *]:遍历所有key中以[]中参数开头的key
4 msetkey :可以批量插入多个key和value
5 mget key key key ...:获取多个key的值
6 key:flushall:删除所有的key
7 exists key:判断key是否存在,存在返回1,不存在则0
8 del key:删除指定的key
9 type key:返回key的类型
二、设置key指定时间过期的三个命令:
1 expire key seconds:设置key在seconds秒后过期
2 ttl key:查看key剩余的国企时间 返回-2 代表key已经过期不存在了,否则表示key存在 没有过期
3 persist key:去掉key的过期时间
三、String类型相关的命令:
1 get key:获取key对应的value
2 set key value:设置key-value
4 incr key:key自增1,如果key不存在,自增后 get(key)=1
5 decr key:key自减1,如果key不存在,自减后get(key)=-1
6 incrby key num: k:key k自增num ,如果key不存在,自增后get(key)=num
7 decr key k:自减k,如果key不存在,自减后get(key)=-k
8 setnx key value:key不存在时,才设置key
9 append key value:在这个key的value上追加value
10 strlen key :返回字符串的长度(注意中文每个字符占用2个字节)
11 incrbyfloat key value:增加key对应的值value
12 getrange key start end :获取字符串指定下标所有的值
13 setrange key index value:设置指定下标所有对应的值
四、Hash(key,value结构,小型的redis,field不能相同,value可以相同)命令:
field:相当于一个key:
1 hget key field:获取hash key对应的field的value
2 hset key field value:设置 hash key对应的field的value
3 hdel key field:删除hash key对应的field的value
4 hexists key field:判断hash 中key是否有field
5 hlen key:获取hash key field的数量
6 hmget key field1 filed2 ....:批量获取Hash key的一批field对应的值
7 hmset key field1 filed2 ....:批量设置hash key的一批field value
8 hgetall key :返回hash key对应所有的field和value
9 hvals key:返回hash key对应所有field的value
10 hkeys key:返回hash key对应的field
11 hsetnx key filed value:设置hash key对应field的value(如果field已经存在,则失败)
12 hincrby key field intCounter:hash key对应的value自增intCounter
13 hincrbyfloat key field floatCounter : hincrby 浮点数版
五、list(有序,可以重复,左右弹入弹出)命令:
增
1 rpush key value1 value2 ....:从列表右端插入值
2 lpush key value1 value2 ....:从列表左端插入值
3 linsert key before value newValue:在list指定值钱面插入newValue
4 linsert key after value newValue:在list指定的值后插入newValue
删
1 lpop key:从列表左侧弹出一个item
2 rpop key:从列表右侧弹出一个item
3 lrem key count value:根据count值,从列表中删除所有value相等的项
(1)count>0:从左到右,删除最多count个value想等的项
(2)count<0:从右到左,删除最多Math.abs(count)个value相等的项
(3)count=0:删除所有value相等的项
4 ltrim key start end:按照索引范围修剪列表
查
1 lrange key start end(包含end):获取列表指定索引范围所有item,-- lrange key 0 -1 查看所有的值
2 lindex key index:获取列表指定索引的item
3 llen key:获取列表长度
4 lset key index newValue:设置列表指定索引值为newValue
六、Set(集合:无序,无重复,集合间操作)
查
1 smembers key:返回集合中所有的元素(如果数据量大,小心使用)
增
1 sadd key element:向集合key添加element(如果element存在,则失败)
删
1 srem key element:将集合key中的element移出掉
其他:
1 scard key :计算集合大小
2 sismember key value:判断value是否存在,1:存在,0不存在
3 srandmember key count:从集合中随机挑count个值
4 spop key:从集合中随机弹出一个元素
集合间操作:
1 sdiff key key:求这两个集合中的差集
2 sinter key key:求这两个集合中的交集
3 sunion key key:求这两个集合的并集
七、zset(有序集合,无重复元素,element+score)
增:
1 zadd key score element(可以是多对):添加score和element
删:
1 zrem key element(可以是多个):删除元素
查:
1 zrange key start end:返回从start到end中所有的元素
集合间操作:
1.zunionstore key key:求这两个集合的并集
2.zinterstore key key:求这两个集合中的交集
其他:
1.zscore key element:返回元素的分数
2.zincrby key increscore element:增加或减少元素的分数
3 zcard key:返回元素的个数
4 zrank key element:返回元素在集合中的排名
5 zrangebyscore key minscore maxscore(withscores):返回指定分数范围内的升序元素(分值)
6 zcount key minscore maxscore:返回有序集合内在指定分数范围内的个数
7 zremrangebyrank key start(minscore) end(maxscore):删除指定排名内的升序元素
八、Redis数据结构的适用场景:
- List: 双向列表,适用于最新列表,关注列表等
- Set: 适用无顺序的集合,点赞,抽奖,已读,共同好友等
- Hash:对象属性,不定长属性数等
- KV:单一数值,适用于验证码,缓存等
九、获取Redis某个指定字符开头的key
//所有以某个字符开头的 key
Collection keys = redisCache.keys(‘a’ + “*”);