基本操作
redis默认开启16个数据库,默认使用第0个,可以使用select命令切换。
select index # 切换数据库
查看当前数据库内所有键值
keys *
清空数据库
flushdb # 清空当前数据库
flushall # 清空所有数据库
设置键值对
set key value
删除键值对
del key
获取键值
get key
判断键值是否存在
exists key
为键值对设置过期时间
expire key 10 # 秒
查看过期剩余时间
ttl key # 返回-2表示已经过期
查看键值类型
type key
创建键值对并设置过期时间
setex key seconds value
如果不存在则创建,如果存在创建失败
setnx key value
批量设置键值对
mset k1 v1 k2 v2 ...
批量获取键值
mget k1 k2
批量如不存在则创建
msetnx k1 v1 k4 k4 # 整个操作具有原子性,要么全部成功要么全部失败
先获取再设置
getset key val
数据类型
string
追加字符串
append key str # 返回整体长度
获取字符串长度
strlen key
如果字符串内容为数字,可以使其自增自减
incr key # 返回最新值
decr keyincrby key 10 # 增加10
decrby key 10 # 减少10
截取字符串
getrange key 0 3 # 从下标0截取到下标3
替换字符串
setrange key 0 xxx # 从下标0位置向后替换xxx
list
+------+------+------+------+
head | A | B | C | D | tail+------+------+------+------+
插入一个或多个值
lpush key val1 val2 ... # 插入列表头部
rpush key val1 val2 ... # 插入列表尾部
范围获取元素
lrange key idx1 idx2 # 倒序输出 从下标1到下标2范围输出
移除元素
lpop key # 移除头部元素
rpop key # 移除尾部元素
下标访问
lindex key idx # 下标访问
获取长度
llen key
删除元素
lrem key count val # 删除指定个数的val,返回删除个数
只保留指定下标范围的元素
ltrim key start stop
先尾删指定列表,再将该元素头插到指定列表
rpoplpush
设置元素内容
lset key index val
指定元素前后位置插入新元素
linsert key before|after "pivot" element
set
向集合内添加元素
sadd key val1 val2 ...
查看成员
smembers key
判断成员是否存在
sismember key val
获取元素个数
scard key
移除元素
srem key # 返回删除个数,可表示成功与否
随机获取元素
srandmember key count # 指定个数
移动一个集合的元素到另一个集合
smove set1 set2
求两个集合之差/交/并
sdiff set1 set2 # 差
sinter set1 set2 # 交
sunion set1 set2 # 并
hash
添加键值对
hset myhash field1 value1 field2 value2 ...
获取键值对
hget key field
hmget key field1 field2 ... # 获取多个键值对
hgetall key # 输出所有键值对
删除键值对
hdel key field
获取元素个数
hlen key
判断是否存在
hexists key field
获取所有键或值
hkeys key # 获取所有键
hvals key # 获取所有值
自增元素值
hincrby key field count
zset
zset相比set仅多了一个成绩元素,用来排序。
添加元素
zadd myzs 1 one 2 two 3 three
获取所有元素
zrange myzs 0 -1
排序显示元素
ZRANGEBYSCORE myzs -inf +inf [withscore] # 附带显示成绩
获取元素个数
zcard myzs
geospatial
添加地点
geoadd china:city 116.40 35.32 beijing # 经度 纬度 地名
获取地点
geopos china:city beijing
计算地点之间距离
geodist china:city beijing shanghai
以给定的经纬度为中心,找一定半径内的元素
georadius china:city 116.40 35.32 1000 km count 1 /*指定个数*/ [withdist] [withcoord] /*带上距离或经纬度*/
以给定的地点为中心,找一定半径内的元素
georadius china:city beijing 1000 km count 1 /*指定个数*/ [withdist] [withcoord] /*带上距离或经纬度*/