1.String类型
注意:当键指向的是汉字时,显示的是16进制,若想显示汉字,连接时在后面加上
--raw
单个赋值:SET key value
单个取值:GET key
多个赋值:MSET key value key1 value
获取多个值:MGET key key1
删除:DEL key
递增数字:当存储的是整数时,可以用incr使值递增,并返回递增后的值.
递增数字:incr key
递减数字:decr key
增加指定的整数:incrby key number
减少指定的整数:decrby key number
2.Hash散列
Hash叫散列类型,提供了字段和字段值的映射.字段值只能是字符串类型,不支持散列和集合等类型,相当于是对象格式的存储.
赋值:hset key field value
取值:hget key field
多个赋值:hmget key field value field2 value…
多个取值:hmget key field field2…
获取所有字段值:hgetall key
删除字段:hdel key field field2…
3.队列List
Redis的List是采用链表来存储,双向链表存储数据,特点:增删快,查找慢,这个队列是有序的
向列表左边添加元素:LPUSH key value value2 value3…
从列表左边弹出元素:LPOP key(临时存储,弹出后从队列中清除)
添加时:从a1开始从左边添加,a2还是从左面开始,然后是a3,所以a3在最左边,从左边弹出的就是a3
从右边添加数据:RPUSH key value value2 value3…
从右边弹出数据:RPOP key
获取列表中元素的个数:LLEN key
查看列表:lrange key start stop
返回的是从start到stop中的所有元素,-1代表最后一个.
双向链表:左边进,右边去。右边进,左边去。
4.set集合
set集合:无序,不可重复
增加元素:sadd key member member1…
删除元素:srem key member member1…
获得所有元素:smembers key
判断元素是否在集合中:sismember key member
1代表是,0代表不是
5.zset有序集合
Sortedset又叫zset是有序集合,可排序,但唯一。zset合set的不同之处:zset中的元素添加一个分数,然后通过分数排序
增加元素:zadd key score member score1 member1…
如果集合中已经存在这个元素,那么会用新的score替换旧的score
添加分数(可用学生成绩,销量数量等做分数,方便计算排序)
获得排名在某个范围的元素列表,并按照元素分数降序返回:revrange key start stop
获取元素的分数:zscore key member
删除元素:zrem key member member1…
获得降序排列并且包含分数:zrevrange key start stop withscores
给分数做加减运算:zincrby key number(要加或减的数字) member
加时:number是整数
减的话:number是负数
6.HyoperLogLog
是一种食用随机化的算法,以少量的内存提供集合中唯一元素数量的近似值。
可以接受多个元素的输入,并给出输入元素的基数估算值。
基数:集合中不同元素的数量
估算值:算法给出的基数是不精确的,可能稍微多一些或少一些,但会控制在合理范围。
有点:即使输入的元素数量或者提及非常大,计算基数所需的空间总是固定的,并且很小。
在Redis里,每个HyoperLogLog键只需12kb内存,就可以计算2^64个不同的元素的基数。但是因为HyoperLogLog指挥根据元素计算基数,而不会存储数据本身。所以不能像集合那样返回数据本身。
7.其他命令
1.keys
//返回所有键
keys *
//返回以xxx开头的键
keys xxx*
2.exists判断键是否存在
exists key
3.del删除某个键
del key
4.rename重命名
rename oldName newName
5.type返回键的类型
type key
6.expire设置生存时间
expire key seconds
TTL key 查看key剩余的生存时间
PERSIST key 清除生存时间
获取服务器信息和统计:info
删除当前选择数据库中的所有key:flushdb
删除所有数据库中的所有key:flushall
切换数据库select number(数据库编号)
数据转移:move key number(要转移到的数据库的编号)
8.事务管理
一次执行多个操作,遵循原子性。
事务执行的三个阶段:开始事务,命令入队,执行事务。
//开始事务
multi
//命令入队
操作1
操作2
.
.
//执行事务
exec