基本
- windows 连接redis: redis-cli.exe -h 127.0.0.1 -p 6379
- 查看所有的key: keys *
- 删除所有key value : flushall
- 查看当前数据库键的数量: dbsize
- 切换数据库 : select [index]
- 获取键值的数据类型:type key
字符串(string)
- 插入键: set key value
- 获取值: get key
- 多重插入键:mset key value
- 多重获取值: mget key
- 判断键是否存在:exists key
- 删除键:del key (删除不支持通配符,不过支持多键参数:redis-cli DEL ‘redis-cli KEYS “user:*”‘)
- 递增数字: incr key
- 增加指定整数: incrby key increment
- 减少指定整数: decrby key increment
- 增加指定浮点数: incrbyfloat key increment
- 追加value: append key value
- 获取字符串长度: strlen key
散列(hash)
- 插入键值: hset key field value
- 获取值: hget key field
- 获取全部键值: hgetall key
- 多重插入键:hmset key field1 value1 field2 value2*
- 多重获取值: hmget key field1 field1
- 判断键是否存在:hexists key field
- 插入键值(原子,键值存在则不插入) : hsetnx key field
- 增加指定整数: hincrby key field increment
- 删除键值: hdel key field
- 只获取字段名:hkeys key
- 只获取字段值:hvals key
- 获取字段数量: hlen key
列表(list)
- 向列表左边添加元素(创建元素): lpush key value
- 向列表右边添加元素(创建元素): rpush key value
- 从左边弹出一个元素:lpop key
- 从右边弹出一个元素:rpop key
- 获取列表中元素数量:llen key
- 获取列表中片段: lrange key 0 2
- 删除元素: lrem key count value
- 当count>0,从左边删除count个value值
- 当count<0,从右边删除|count|个value值
- 当count=0,整个列表中删除value值
- 根据index获取元素:lindex key index
- 指定index位置的的元素:lset key index value
- 修剪列表: ltrim key start end
- 插入元素:linsert key before|after pivot value
- 将元素从一个列表转向另一个列表:rpoplpush source destination
集合(set)
- 添加元素:sadd key value[…]
- 删除元素:srem key value[…]
- 获取全部集合元素: smembers key
- 判断元素是否存在: sismember key value
- 获取集合元素个数:scard key
- 随机弹出元素: spop
- 随机获取:srandmember key count
- 当count>0,从集合获取count个不重复值,count>集合元素数目,获取全部
- 当count<0,从集合获取|count|个值,元素有可能重复
- 差:sdiff setA setB[…]
- 交集 : sinner setA setB[…]
- 并集 : sunion setA setB[…]
- 差:sdiffstore destination setA setB[…]
- 交集:sinner destination setA setB[…]
- 并集:sunion destination setA setB[…]
有序集合(sorted set)
有序集合和列表相似,不过二者使用场景还是有很多不同的。
1.列表是通过链表实现,获取靠近两端数据极快,比较适合“新鲜事”、“日志”这样比较少访问中间元素的应用。
2.有序集合是使用散列表和跳跃表来实现,即时读取中间位置元素,速度也很快(时间复杂度O(log(N)))。
3.列表不能简单地调整元素位置,有序集合可以(更改分数)。
4.有序集合比列表更耗费内存。
- 添加元素:zadd key score member […]
- 获得元素分数:zscore key member
- 获取集合中片段(分数由小到大排序): zrange key start stop[withscores]
- 获取集合中片段(分数由大到小排序): zrevrange key start stop[withscores]
- 根据分数范围获取列表中片段(分数由小到大排序):zrangebyscore key min max [withscores ] [limit offset count]
- 根据分数范围获取集合中片段(分数由大到小排序):zrevrangebyscore key max min [withscores ] [limit offset count]
- +inf -inf 代表正负无穷 1 (5 代表数学上的[1 5)
- 改变元素分数:zincrby key increment member
- 获取集合中元素数量: zcard key
- 获取指定分数范围内元素数目: zcount key min max
- 删除元素: zrem key member[…]
- 按照排名rank删除元素: zremrangebyrank key start stop
- 按照分数删除元素: zremrangebyrank key min max
- 获取元素排名(正序,分数最小的排名0): zrank key member
- 获取元素排名(倒序,分数最大的排名0):zrevrank key member
- 计算有序集合的交集(并集同理):zinterstore destination numkeys key[…] [aggregate :sum|min|max]
其中numkeys是交集集合元素数目,aggregate选项是交集集合score的具体来源方式,例如aggregate=sum,此时交集集合当前元素的score就是所有被交集的元素score的和。
附上jedis相关api测试代码:
|
|