前言
redis 的安装,客户端工具 RedisDesktopManager。
客户端连接
redis-cli -h 127.0.0.1 -p 6379 -a password
redis-cli --stat 查看服务器的状态 key 的数量 使用的内存
redis-cli --bigkeys 大数据的key
redis-cli --scan 返回所有key 不阻塞server
monitor 监视执行命令
KEYS * 返回
一,redis 数据结构以及常用的命令
SET key value [EX seconds] [PX milliseconds] [NX|XX] 设置值
设置值,Ex 表示过期的秒数,px 表示过期的 毫秒数 ,nx 表示 key 不存在时设置 成功, xx 表示 key 存在的时候设置成功。
get key 获得key 值
getset key value 返回以前的值,设置新值为value
getrange key start end 获得value 从start 到 end 的值
strlen key value的长度
append key value 将value 增加在key值value 后面。
incr key 数值增加1
incrby key value 数值增加value
decr key 数值减少1
decrby key value 数值减少value
incrfloat key value 增加浮点数
exists key key是否存在
expire key seconds key 存活的秒数
ttl key 剩余的时间秒速。
del key 删除key
mset key value [.....] 设置多个key的值
mget key value[...] 分别获得多个key的值
-------------List 数据类型---------------
lpush key v1 [v2] 集合中添加元素
lpushx key value 当key 不存在时,不添加到
lindex key index 索引位置的元素
llen key 数组长度
linsert key before | after provit value 在 数组provit元素之前或者之后插入值
lrem key count value 删除 count (count >0 从左向右,count == 0 所有,count <0 从右向左)个值为 value 的元素,
lset key index value 设置index 位置的值为value
ltrim key index value 截取key位置的元素
lrange key star end 查看数组元素
lpop key
rpop key 右边弹出元素
rpoplpush source destination 将元素从source 数组移动到宁外一个数据destination
brpop list1 time 阻塞弹出元素
BRPOPLPUSH 阻塞的RPOPLPUSH 活动 可以防止数据的丢失。
--------------hash 数据类型---------------------
hset key field value 设置key 中field 值
hget key field 获得值
hmset key field1 value1 [field2 value2] 设置多个field值
hmget key field1 field2
hgetall key 获得所有的field 和value 值
hkeys key filed
hvals key 获得所有的fields
hsetnx key field1 value 当key 不存在时设置
hlen
hdel
hexists
hincrby key filed increment 怎家
hincrbyfloat
hsan
置项
-------------------set-------------------
sadd key value1 ... 添加元素到set集合中
scard key 集合中元素的个数
smembers key 返回所有的元素
sdiff key key2 ... 集合差集
sdiffstore destination key key2... 集合差集保存在 destination
sinter key1 key2 集合交集
sinterstore destination key1 key2 交集的值保留在 destination
suion key1 key2 集合并集
suionstore destination key1 key2 集合并集的结果保存在destination
smov source destination member 将元素从 source 移动到 destination
sismember key value 是否包含这个元素
spop key count 弹出count 个元素
srem key value 删除value这个元素
srandmember key count 随机返回count个元素
sscan
---------------------------排序的set----
zadd key score value 按照score 排序,score 相同 按照 字母排序
zrange key start end 【withscores】返回排序的元素 包含start end
zrangebyscore key min max 根据 score大小排序 (2 5 大于2小于等于5 ; (2 (5 2 < x <5
zrank key member 返回排序从0开始
zrevrange 降序排列
zcard key 元素个数
zcount key min max score 在 min 和 max 之间(包含)的元素的个数
zlexcount key [a [b 字母范围内数据的个数
zincrby key increment member 增加元素值
zscore key member 返回member的score 值
zinterstore destination numkeys(key的个数) key key weights(key中score相乘weigt) aggregate(sum | min | max ) 交集
zunionstore 类似于zinterstore 求并集
zrem key member 删除元素的值
zremrangebyrank key start end 删除元素
zremrangebyscore
------------------------bitmap-----------------
-----------------------hyperloglogers
--------------发布订阅---------------
subscribe channel channel2 订阅事件
publish channel 发布事件
psubsribe channel 正则匹配 订阅事件
punsubscribe channel 取消订阅事件
---------------管道--------------
客户端一次发送多条命令
-----------------事务------------
multi
comman1
comman2
exec / discard(不执行)
保证执行的顺序,在之间没有其他的客户端执行
不支持回滚
watch ? 监控的数据改变,事物执行会失败。
------------------redis 集群---------
分片,hasing,一致性hashing redis
获得锁,单实例 set nx 唯一之,比较唯一值,删除 锁
redis-cli config set notify-keyspace-events KEA
二,redis的常见配置项
maxmemory 最大内存
maxmemory-policy 测