一. 位操作
一个字节由8个二进制位组成,当执行 set name bar 命令时,name键的结构图为:
1.getbit : 获得一个字符串键指定的二进制位的值 redis> getbit name 2 // (integer)12.setbit : 修改某个位置的二进制的值 redis> setbit name 6 0 //第6位改为03.bitcount : 统计位值为1的个数。 bitcount name 0 5 //只统计0到5位置的4.bitop : 对多个字符串进行位操作(and,or,xor,not) redis> bitop or result name1 name2 //表示将name1和name2或操作(1 0得1, 1 1得1 , 0 0得0),结果放在result中二. 散列类型
散列类型的键值也是一种字典结构,其存储了字段和字段值的映射,但字段值只能是字符串,不支持其它数据类型。一个散列类型键可以包含至多2的32次方-1个字段。1.hset hget : 设置,取值
redis> hset car PRice 500 //(integer)1,如果存在返回0,但键不存在时,会自动创建。redis> hset car name BMW //(integer)1redis> hget car name // "BMW"2.hgetall : 返回所有键的字段值。如上面的car:
redis> hgetall car1) "price"2) "500"3) "name"4) "BMW"3.hexists : 判断字段是否存在,存在返回1,不存在返回0
redis> hexists car price // (integer)14.hsetnx : 判断字段是否存在,不存在时设置值,设置成功返回1。存在时不改变,直接返回0
redis> hsetnx car speed 123 // 不存在,返回1,并加入speed字段。5.hincrby : 与前面的incrby一样。
redis> hincrby car price 1006.hdel : 删除字段(可删多个),返回删除的个数
7.hkeys key : 遍历字段的名字
8.hvals key : 遍历字段值
9.hlen key : 获取有多少个字段
三. 列表类型
存储一个有序的字符串列表,内部是使用双向链表实现的,可向列表的两端添加元素,或者获得列表的某一个片段。1.lpush rpush : lpush向左端,rpush向右端,都返回增加后列表的长度 , 支持一下加多个。
2.lpop rpop : lpop向左端弹出一个元素,执行两步操作,首先将列表的左边的元素移除,然后返回被移除的元素
3.llen : 获取列表长度。
4.lrange : 获取列表片段
redis> lrange list 0 2 //获取0到2位置的片段,不会像pop一样删除原数据redis> lrange list -1 -2 //从最右边开始,最后一个和倒数第二个redis> lrange list 0 -1 //获取全部元素5.lrem key count value : 删除列表中指定的值
redis> lrem list -1 2 //删除最后一个值为2的元素redis> lrem list 5 2 //删除前5个元素值为2的元素6.lindex : 获取某个位置的值 如:lindex list 0
7.lset : 设置某位置的值
8.ltrim : 只保留列表指定片段,如:ltrim list 0 1
9.linsert : 向列表中某个元素的左边或者右边插入元素
//有个列表 list : 2 7 0redis>linsert list AFTER 7 3 //从左向右查找列表,找到7后,在7的右边插入3, ==>2 7 3 0redis> linsert list BEFORE 2 1//==> 1 2 7 3 0休息休息,见后续更新…
老生常谈:深圳有爱好音乐的会打鼓(吉他,键盘,贝斯等)的程序员和其它职业可以一起交流加入我们乐队一起嗨。我的QQ:657455400
新闻热点
疑难解答