系统级
# 启动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 * # 查看所有keyexists key # 查看是否存在keymove key index # 将key转移到指定的数据库expire key second # 设置过期时间ttl key # 查看key的存活时间type key # 查看key的类型
字符串String
set key value # 设置键值对get key # 获取key对应的值del key # 删除keykeys * # 查看所有keyexists key # key是否存在append key value # 若key不存在,则相当于set;若key存在,则相当于appendstrlen 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的内容为valuesetex 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的最后一个值弹出添加到destinationlset key index value # 将列表下标为index设置为valuelinsert 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 # 返回位置名称距离和经纬度,限定个数为ngeoradiusbymember 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或0getbit key offset # 获取offset位的值bitcount key [start end] # 查看key上位为1的个数