一、redis的数据结构包括,字符串,hash值,list,set,zset
二、1.redis的单个命令是原子操作
2.list vs zset.zset支持快速的随机访问和两端访问。但是更耗内存
三、不同数据结构的命令
1.数据结构无关命令:
a.keys */?/[]
b../redis-server ../redis.conf 启动redis服务端
c.select 1#选择不同数据库字典 默认启动16个
d.del name#用于删除key值,所有类型均可删除
e.exists key#判断key是否存在
2.string:
a.set name jack
b.get name
c.incr num #return 1
d.incrby num 2 # return 3
e.decr num #return 2
f.decrby num 5 # return -3
g.strlen num # return 2 返回字符串长度,中文字符需要考虑编码
h.append num 2 # return -32 往字符串末尾添加字符串
i.incrybyfloat num -2.5#return -34.5增长浮点值,存在精度丢失
j.mget name num #return jack -34.5 只能用于获取字符串类型
k.mset age 11 kiost 4#同时设置多个值
l.getbit name 0 #name的字符转为ascii码值,转换为二进制存储,获取索引为0的值,一个字节8位二进制,不足补0
m.setbit age 0 1#设置age的字符串,二进制索引值0位为1
n.bitcount\bittop #扩展,使用时查表
3.hash
a.格式 hset key field value,hget key field
b.格式 hmget key field [field …],hmset key field value[field value]
c.hgetall key#返回field value的键值对
d.hexists key field#判断key的field是否存在
e.hsetnx key field value #当field不存在时赋值
f.hincrby key field incrment #自增字段
g.hdel key field [field]#删除一个或多个字段
h.hkeys key#获取key对应的所有field
i.hvals key#获取key对应的所有value
j.hlen key#获取key的field个数
4.list
a.lpush key value[value …]#往list的左边放值
b.rpush key value[value …]#往list的右边放值
c.lpop key,rpop key #从左右两端分别弹出值
d.llen key#获取list的元素个数
e.lrange key start stop#获取start-stop索引之间的值,含stop
f.lrem key count value
1.count>0 从左边删除count个值为value的元素
2.count=0 从左边删除所有值为value的元素
3.count<0 从右边删除所有值为value的元素
4.返回实际删除的个数
g.lindex key index#返回list指定index的元素
h.lset key index value#设置list指定index的元素为value(index需要已经存在)
i.ltrim key start stop#删除除start-stop外的值,stop保留
j.linsert key after|before pivot value
# 在key中找到pivot在after|befort 插入value
k.rpoplpush source destination#从source pop一个元素到dest
5.set
a.集合内的元素是无序的,唯一的,内部是空的散列表
b.sadd key member [member …]#向集合添加元素,返回实际添加的个数
c.srem key member [member …]#向集合删除元素,返回实际删除的个数
d.smembers key#获取集合内的所有元素
e.sismember key member#判断元素是否在集合中
f.sdiff key1 key2 #计算key1 key2的差集
g.sinter key1 key2 #计算key1 key2的交集
h.sunion key1 key2 #计算key1 key2的并集
i.集合之间的元素有三个及以上的,先取前两个运算,结果依次与后续的集合运算
j.scard key#查询集合的元素个数
k.sdiffstore destination key [key2]#结果存储在destination
l.srandmember key count#获取count个随机的集合元素
m.spop key #随机弹出一个元素
6.zset(-inf+ inf- score的最大值和最小值)
a.zadd key score member#添加元素
b.zscore key member#返回score
c.zrange key start stop[withscore]#获取索引值为start-stop中的值,按score小到大排列,索引值为加入集合的顺序。
d.zrevrange 从大到小排列展示
e.zincrby key incrment member#给key的元素增加incrment分
f.zcard key#元素的个数
g.zcount key min max#返回分数范围内的元素个数
h.zrem key member[member]#删除key的元素
i.zremrangebyrank key start stop#按分数的小到大,删除start到stop的值
j.zremrangebyscore key min max#按分数删除
k.zrank key member #获取member的排名(分数)
l.zrevrank key member#获取反向的排名
m.zinterstore destination numkeys key1 [key…] [weights weight[weight] ] [aggregate sum|min|max]#aggregate 默认sum
原文:https://www.cnblogs.com/djcao/p/10419638.html