导图社区 redis
redis数据库的操作命令和几大数据类型
编辑于2019-07-17 13:01:08redis
sudo /etc/init.d/redis-server restart
redis-cli -h 127.0.0.1 -p 6379 -a 123456
string
string
1、set key value2、setnx key value3、set key value ex seconds
作用: 设置键值,获取键对应的值
作用: 设置过期时间 expire
4、get key5、mset key1 value1 key2 value2 6、mget key1 key2 key3
作用: 同时设置多个值,获取多个值
7、stren key
作用:获取值的长度
8、incr key9、decr key
1、append key value
作用: 追加拼接value的值
2、setrange key index value3、getrange key start stop
setrange key 索引值 value 作用: 从索引值开始,value替换原内容
getrange key 起始值 终止值 作用: 获取指定范围切片内容
4、incrby key step5、decrby key step
# 字符串操作1、set key value2、setnx key value3、get key3、mset4、mget5、set key value ex seconds6、strlen key
# 数字操作7、incrby key 步长8、decrby key 步长9、incr key10、decr key11、incrbyfloat key number
# 设置过期时间的两种方式# 方式一1、set key value ex 3# 方式二1、set key value2、expire key 5 # 秒3、pexpire key 5 # 毫秒# 查看存活时间ttl key# 删除过期persist key
# 切换库select number# 查看键keys * (keys name)(keys na*)# 键类型TYPE key# 键是否存在exists key# 删除键del key# 键重命名rename key newkey# 返回旧值并设置新值(如果键不存在,就创建并赋值)getset key value# 清除当前库中所有数据(慎用)flushdb# 清除所有库中所有数据(慎用)flushall
列表数据类型(List)
# 增1、LPUSH key value1 value2 2、RPUSH key value1 value23、RPOPLPUSH source destination4、LINSERT key after|before value newvalue
列表中插入值(LINSERT)
头尾压入元素(LPUSH | RPUSH)
# 查5、LRANGE key start stop6、LLEN key
查看|设置 列表元素 查看(LRANGE)
# 删7、LPOP key8、RPOP key9、BLPOP key timeout10、BRPOP key timeout11、LREM key count value12、LTRIM key start stop
count>0:表示从头部开始向表尾搜索,移除与value相等的元素,数量为countcount<0:表示从尾部开始向表头搜索,移除与value相等的元素,数量为countcount=0:移除表中所有与value相等的值
阻塞弹出(BLPOP | BRPOP)(重要)
1、如果弹出的列表不存在或者为空,就会阻塞2、超时时间设置为0,就是永久阻塞,直到有数据可以弹出3、如果多个客户端阻塞再同一个列表上,使用First In First Service原则,先到先服务
头尾弹出元素(LPOP | RPOP)
RPOPLPUSH source destination : 从一个列表尾部弹出元素压入到另一个列表头部
去除指定范围外元素(LTRIM)
# 改13、LSET key index newvalue
位图操作bitmap(重要
位图不是真正的数据类型,它是定义在字符串类型中
setbit key offset value# offset是偏移量,从0开始
设置某一位上的值
GETBIT key offset
获取某一位上的值
bitcount key
统计键所对应的值中有多少个 1
Hash散列数据类型
# 1、设置单个字段HSET key field valueHSETNX key field value
# 2、设置多个字段HMSET key field value field value
# 3、返回字段个数(field个数)HLEN key
# 4、判断字段是否存在(不存在返回0)HEXISTS key field
# 5、返回字段值HGET key field# 6、返回多个字段值HMGET key field filed# 7、返回所有的键值对HGETALL key# 8、返回所有字段名HKEYS key# 9、返回所有值HVALS key
# 10、删除指定字段HDEL key field
# 11、在字段对应值上进行整数增量运算HINCRBY key filed increment# 12、在字段对应值上进行浮点数增量运算HINCRBYFLOAT key field increment
集合数据类型(set)
1、无序、去重2、元素是字符串类型3、最多包含2^32-1个元素
# 1、增加一个或者多个元素,自动去重SADD key member1 member2# 2、查看集合中所有元素SMEMBERS key# 3、删除一个或者多个元素,元素不存在自动忽略SREM key member1 member2# 4、元素是否存在SISMEMBER key member# 5、随机返回集合中指定个数的元素,默认为1个SRANDOMMEMBER key count# 6、返回集合中元素的个数,不会遍历整个集合,只是存储在键当中了SCARD key# 7、把元素从源集合移动到目标集合SMOVE source destination member# 8、差集(number1 1 2 3 number2 1 2 4)SDIFF key1 key2 # 9、差集保存到另一个集合中SDIFFSTORE destination key1 key2# 10、交集SINTER key1 key2SINTERSTORE destination key1 key2# 11、并集SUNION key1 key2SUNIONSTORE destination key1 key2
有序集合sortedset
# 在有序集合中添加一个成员zadd key score member# 查看指定区间元素(升序)zrange key start stop [withscores]# 查看指定区间元素(降序)ZREVRANGE key start stop [withscores]# 查看指定元素的分值ZSCORE key member# 返回指定区间元素# offset : 跳过多少个元素# count : 返回几个# 小括号 : 开区间 zrangebyscore fruits (2.0 8.0zrangebyscore key min max [withscores] [limit offset count]# 删除成员zrem key member# 增加或者减少分值zincrby key increment member# 返回元素排名zrank key member# 返回元素逆序排名zrevrank key member# 删除指定区间内的元素zremrangebyscore key min max# 返回集合中元素个数zcard key# 返回指定范围中元素的个数zcount key min maxzcount fruits 4 7 zcount fruits (4 7# 并集zunionstore destination numkeys key [weights 权重值] [AGGREGATE SUM|MIN|MAX]# 交集:和并集类似,只取相同的元素ZINTERSTORE destination numkeys key1 key2 WEIGHTS weight AGGREGATE SUM|MIN|MAX
为了解决硬盘IO带来的性能瓶颈