redis基本类型用法

75 阅读4分钟

string

string 字符串 string: 最简单的字符串类型键值对缓存,也是最基本的

key相关: keys *:查看所有的key (不建议在生产上使用,有性能影响), type key:key的类型。

string类型

get/set/del:查询/设值/删除, set rekey data:设置已经存在的key,会覆盖, setnx rekey data:设置已经存在的key,不会覆盖。

set key value ex time:设置带过期时间的数据(默认秒), expire key:设置过期时间, ttl key:查看剩余时间,-1永不过期,-2过期。

append key appenddata(拼接的内容):合并字符串, strlen key:字符串长度。

incr key:累加1, decr key:累减1, incrby key num:累加给定数值, decrby key num:累减给定数值。

getrange key start end:截取数据,end=-1 代表到最后, setrange key start newdata:从start位置开始替换数据。

mset:连续设值, mget:连续取值, msetnx:连续设置,如果存在则不设置。

其他

select index:切换数据库,总共默认16个(在redis.conf文件中设置,默认使用0库,相互之间库的数据不共享), flushdb:删除当前下边db中的数据, flushall:删除所有db中的数据。

hash

hash:类似map,存储结构化数据结构,比如存储一个对象(不能有嵌套对象)

使用: hset key property value: -> hset user name abc-> 创建一个user对象,这个对象中包含name属性,name值为abc

hget user name:获得用户对象中name的值

hmset:设置对象中的多个键值对 -> hmset user age 18 phone 139123123。

hmget:获得对象中的多个属性 -> hmget user age phone。

hgetall user:获得整个对象的内容。

hincrby user age 2:累加属性数值。

hincrbyfloat user age 2.2:累加属性小数数值。

hlen user:有多少个属性。

hexists user age:判断对象中的属性是否存在。

hkeys user:获得所有属性。

hvals user:获得所有值。

hdel user 属性:删除对象属性,比如hdel user name 删除name属性

list-可以放入重复的数据

list:列表,[a, b, c, d, …]

使用

lpush userList 1 2 3 4 5:构建一个list,从左边开始存入数据, rpush userList 1 2 3 4 5:构建一个list,从右边开始存入数据, lrange list start end:获得数据。

lpop:从左侧开始拿出一个数据(原来的list就没有这条数据了), rpop:从右侧开始拿出一个数据(原来的list就没有这条数据了)。

llen list:list长度。

lindex list index:获取list下标的值。

lset list index newdata:把某个下标的值替换。

linsert list before/after newdata:插入一个新的值。

lrem list num value:删除数据或者删除几个相同数据。

ltrim list start end:截取值,替换原来的list。

set及其zset

set

带有去重功能

使用:

sadd set 1 2 3 4 5 6:构建一个set并且加入数据。

smembers set:获取数据。

scard set:统计set中元素的个数。

sismember set 1:是否存在member。

srem set 2:删除member,spop set:随机删除一个,spop set 2:随机删除两个。

srandmember set 3:随机取出三个member。

smove set1 set2 10:把set1中的10给set2。

sdiff set1 set2:差集取set2不包含的数据,sinter set1 set2:交集,sunion set1 set2:并集

sorted set

排序的set,可以去重可以排序,比如可以根据用户积分做排名,积分作为set的一个数值,根据数值可以做排序。set中的每一个memeber都带有一个分数

使用

zadd zset 10 value1 20 value2 30 value3:设置member和对应的分数。

zrange zset 0 -1:查看所有zset中的内容。

zrange zset 0 -1 withscores:带有分数。

zrank zset value:获得对应的下标。

zscore zset value:获得对应的分数。

zcard zset:统计个数。

zcount zset 分数1 分数2:统计在分数1和分数2之间的个数。

zrangebyscore zset 分数1 分数2:查询分数之间的member(包含分数1 分数2)。

zrangebyscore zset (分数1 (分数2:查询分数之间的member(不包含分数1 和 分数2)。

zrangebyscore zset 分数1 分数2 limit start end:查询分数之间的member(包含分数1 分数2),获得的结果集再次根据下标区间做查询。

zrem zset value:删除member。