系统级
# 启动
redis-server xxx.conf
# 启动
redis-cli -p 6379
# 关闭连接
shutdown
压力测试
redis-benchmark [options] [value]
-h:指定服务器主机名
-p:指定服务器端口
-s:指定服务器socket
-c:指定并发连接数
-n:指定请求数
-d:以字节的形式指定set/get值的数据大小
-r:set/get/incr使用随机key,sadd使用随机值
-P:通过管道传输请求
-q:强制退出redis,仅显示query/sec值
--csv:以CSV格式输出
-l:生成循环,永久执行测试
-t:仅运行以逗号分隔的测试命令列表
-I:Idle模式,仅打开N个idle连接并等待
# 100个并发连接,100000个请求,检测host为localhost,端口为6379的redis服务器
redis-benchmark -h localhost -c 100 -n 100000 -p 6379
数据库
select 7 # 选择7号数据库
dbsize # 查看当前数据库的key数量
flushdb # 清空当前数据库
flushall # 清空所有数据库
键key
keys * # 查看所有key
exists key # 查看是否存在key
move key index # 将key转移到指定的数据库
expire key second # 设置过期时间
ttl key # 查看key的存活时间
type key # 查看key的类型
字符串String
set key value # 设置键值对
get key # 获取key对应的值
del key # 删除key
keys * # 查看所有key
exists key # key是否存在
append key value # 若key不存在,则相当于set;若key存在,则相当于append
strlen key # 获取key的字符串长度
incr key # 将key对应的值自增(Integer)
decr key # 将key对应的值自减(Integer)
incrby key incrment # 将key对应的值增加value(Integer)
decrby key decrment # 将key对应的值减少value(Integer)
getrange key start end # 获取key下标[start,end]对应的内容
getrange key 0 -1 # 获取全部的值
setrange key offset value # 设置key指定下标offset的内容为value
setex key seconds value # 设置key的过期时间
setnx key value # 如果key不存在则设置键值对
mset key value [key value...] # 设置多个键值对
mget key [key] # 获取多个值
msetnx key value [key value...] # 设置多个值,原子性操作
getset key value # 设置key,返回上一次设置的value
列表List
lpush key value [value...] # 往列表头部添加一个或多个值
rpush key value [value...] # 往列表尾部添加一个或多个值
lrange key start stop # 获取列表范围内的值[start,stop]
lrange key 0 -1 # 获取列表的所有值
lpop key # 弹出列表头
rpop key # 弹出列表尾
lindex key index # 获取列表指定下标的值
llen key # 获取列表的长度
lrem key count value # 移除count个与value相等的值
ltrim key start stop # 修剪,保留[start,stop]的值
rpoplpush source destination # 将sourc的最后一个值弹出添加到destination
lset key index value # 将列表下标为index设置为value
linsert key before|after pivot value # 在key前面|后面插入value
集合Set
sadd key member [member...] # 将一个或多个元素添加到集合中
smenbers key # 返回集合中的所有成员
sismember key member # member是否是key的成员之一
scard key # 获取集合里面的元素个数
srem key member [member...] # 移除集合中的一个或多个元素
srandmember key [count] # 随机返回集合中的n个元素
spop key [count] # 随机弹出集合中的n个元素
smove source destination member # 将成员从一个集合移到另一个集合
sdiff key1 [key2...] # 返回集合2中没有的集合1元素
sinter key key # 返回两个集合的交集
sunion key key # 返回两个集合的并集
哈希Hash
hset key field value # 设置键值对 key - <field,value>
hget key field # 获取哈希表中的的field字段对应的值
hmset/hmget key field value # 存入/获取多个
hgetall key # 获取哈希表中所有的键值对
hdel key field [field] # 删除哈希表中一个或多个字段
hlen key # 获取哈希表的键值对的数量
hexists key field # 哈希表中是否存在字段
hkeys key # 哈希表中所有的字段
hvals key # 哈希表中所有的值
hincrby key field incrment # 为哈希表中的字段增加指定值
hsetnx key field value # 为哈希表中不存在的字段赋值
有序集合Zset
zadd key score member # 将一个或多个值及其分值添加到须有序集合中
zrange key start stop [withscores] # 返回指定区间内的成员(显示分值并递增)
zrangebyscore key min max [withscores] [limit] # 显示指定区间的集合
zrangebyscore key -inf +inf # 显示正无穷到负无穷的成员
zrem key member [member...] # 移除集合中的一个或多个成员
zcard key # 返回集合的成员数量
zrank key member # 返回集合中成员从小到大的排位
zrevrank key member # 返回集合中成员从大到小的排位
地理位置GEO
geoadd key longitudu latitude member # 添加地理位置,值为经纬度
geopos key member [member...] # 返回key里指定位置的经纬度
geodist key member1 member2 [unit] # 返回两地的距离
georadius key longitude latitude radius m|km| # 给定经纬度为中心,找出某一半径内的元素
georadius key longitude latitude radius m|km| withdist # 返回位置名称和中心距离
georadius key longitude latitude radius m|km| withcoord # 返回位置名称和经纬度
georadius key longitude latitude radius m|km withdist withcoord count n # 返回位置名称距离和经纬度,限定个数为n
georadiusbymember key member radius m|km|ft|m [withcoord] [withdist] [withhash] [asc|desc] [count count] # 找出指定范围内的元素,中心点由给定的位置元素决定
geohash key member [member...] # 经纬度转化为字符串,字符串越长表示位置更精确,两个字符串越相似距离越近
zrem key member [member...] # geo并没有删除,底层通过zset实现,因此用zrem
HyperLogLog
pfadd key element [element...] # 添加元素到HyperLogLog中
pfcount key [key...] # 返回技术估算值
pfmerge destkey sourcekey [sourcekey...] # 将多个HyperLogLog合并为一个
BitMap
setbit key offset value # 设置key的第offset位位1或0
getbit key offset # 获取offset位的值
bitcount key [start end] # 查看key上位为1的个数