7.2 redis命令

redis命令:
redis-cli 进入Redis环境
Help @string 获取所有string类型帮助
Help @list 获取所有list类型帮助
set 123 456 定义一个key=123,value=456的值
get 123 查询key=123的值
set key zhangsan ex 10 设置key,value值,并10秒后过期
set key zhangsan px 10 设置key,value值,并10毫秒后过期
EXPIRE 123 10 设置key=123的键值对10秒后过期
PEXPIRE 123 10 设置key=123的键值对10毫秒后过期
PERSIST 123 删除设置的key=123的过期命令
EXPIREAT 123 1491109200 设置123在2017/04/02 13:0:0(时间戳格式:1491109200)过期,
TTL 123 查看剩余生存时间(key存在但没有设置TTL,返回-1;key曾经存在,但已经消亡,返回-2)

MSET yun 30 yun1 31 设置多个键的字符串值 MSET key value [key value ...]
KEYS 1* 查找key是1开头的键
KEYS * 查找当前库所有的键
KEYS 12? ?号代表后面跟一个字符的查找
TYPE 123 查看键类型
EXISTS 123 查看键是否存在
RENAME 123 myname 键123重令名为myname
DEL 123 删除
DEL 123 312 多行删除
MGET 123 124 获取多个给定的键的值
GETSET 123 888 返回旧值并设置新值,如果键不存在,就创建并赋值
STRLEN 123 字符串长度

APPEND 123 56 APPEND key value在以前value的值后面追加值,如果键存在就追加;如果不存在就等同于SET key value
GETRANGE 123 0 2 GETRANGE key start end 获取子字符串,索引值从0开始,负数表示从字符串右边向左数起,-1表示最有一个字符
SETRANGE 123 1 9 SETRANGE key offset value,覆盖字符串,从第一个下标开始,下个字符用9替换
INCR key 增加1,只有value为数字才可用,
DECR key 减1,字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串
INCRBY key decrement 自定义增长数值
DECR key decrement 自定义减少数值
BITCOUNT key [start] [end] 统计指定位区间上值为1的个数 ,统计的是二进制数
redis-cli -n 2 登陆不同的库(第二个库)
FLUSHDB 清除当前库数据
FLUSHALL 清除所有库中的数据

网站用户的上线次数统计(活跃用户)
用户ID为key,天作为offset,上线置为1
ID为500的用户,今年的第1天上线、第30天上线
SETBIT u500 1 1
SETBIT u500 30 1
BITCOUNT u500
KEYS u*

按天统计网站活跃用户
天作为key,用户ID为offset,上线置为1
求一段时间内活跃用户数
SETBIT 20160602 15 1
SETBIT 20160601 123 1
SETBIT 20160606 123 1
求6月1日到6月10日的活跃用户
BITOP OR 20160601-10 20160601 20160602 20160603 20160610
BITCOUNT 20160601-10
结果为2

List列表
元素是字符串类型
列表头尾增删快,中间增删慢,增删元素是常态
元素可以重复出现,最多包含2^32-1元素
列表的索引:从左至右,从0开始;从右至左,从-1开始
LPUSH list a b 123 LPUSH key value [value ...]定义list
RPUSH list1 a b 123 RPUSH key value [value ...]定义list
LPOP list LPOP key显示最右一个元素, 并删除
RPOP list 显示最左一个元素, 并删除
LRANGE key start stop 按坐标显示元素
LRANGE key 0 -1 表示返回所有元素
LINDEX key index 获取指定位置元素
LSET key index value 设置指定位置元素的值
LLEN key 列表长度,元素个数
LREM list 1 1 LREM key count value,count > 0从表头开始向表尾搜索/count < 0从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count;count = 0 : 移除表中所有与 value 相等的值
LTRIM listkey 1 -1 LTRIM key start stop去处指定范围外元素
LINSERT list before a 123 LINSERT key BEFORE pivot value在a之前插入123
LINSERT list after a 123 在a之后插入123,key和pivot不存在,不进行任何操作

Hash散列
由field和关联的value组成的map键值对
field和value是字符串类型
HSET hset a 123 HSET key field value,设置单个字段key=hset,file=a,value=123
HMSET key field value [field value ...] 设置多个字段
HLEN key 返回字段个数
HEXISTS key field 判断字段是否存在
HGET key field 返回字段值
HGETALL key 返回所有字段值
hincrby num ab 100 HINCRBY numbers x 100在字段对应的值上进行整数的增量计算
Hash用途:
节约内存空间
每创建一个键,它都会为这个键储存一些附加的管理信息(比如这个键的 类型,这个键最后一次被访问的时间等等)
所以数据库里面的键越多,redis数据库服务器在储存附加管理信息方面耗 费的内存就越多,花在管理数据库键上的CPU也会越多在字段对应的值上 进行浮点数的增量计算
不适合hash的情况:
使用二进制位操作命令
使用过期键功能
微博的好友关注:
用户ID为key,Field为好友ID,Value为关注时间
user:1000 user:606 20150808
用户维度统计:
统计数包括:关注数、粉丝数、喜欢商品数、发帖数
用户为Key,不同维度为Field,Value为统计数
比如关注了5人
HSET user:100000 follow 5
HINCRBY user:100000 follow 1

set集合:
无序的、去重的
元素是字符串类型
SADD friends jack tom john SADD key member [member ...]增加一个或多个元素
SREM friends tom john SREM key member [member ...]移除一个或者多个元素
SMEMBERS key 查看集合包含的所有元素
SISMEMBER friends tom SISMEMBER key member检查给定元素是否存在于集合中
SCARD key 返回集合中元素的个数
SUNIONSTORE key2 key1 temp 复制key1元素到key2
SRANDMEMBER key 返回集合中的随机一个元素
SPOP key 移除并返回集合中的一个随机元素
差集:SDIFF key [key ...]
从第一个key的集合中去除其他集合和自己的交集部分
SADD number1 123 456 789
SADD number2 123 456 999
SDIFF number1 number2 以number1 为主的差集,返回789
交集:SINTER key [key ...]
取所有集合交集部分
SADD number1 123 456 789
SADD number2 123 456 999
SINTER number1 number2 返回123,456
并集:SUNION key [key ...]
取所有集合并集
SADD number1 123 456 789
SADD number2 123 456 999
SUNION number1 number2 返回123,456,789,999

猜你喜欢

转载自blog.csdn.net/u011418530/article/details/80824973
7.2