一 redis 通用的命令,主要是针对key的增删改查,移动,设置有效期等操作。
set age 28 --添加key
get age --取出key
1 查看有哪些键值对
keys * --当前有哪些key
keys s* --模糊查询,key值是s开头的
keys sit[ey] --模糊查询,匹配前面是sit并且第四位是 e或y的键
keys sit?e --模糊查询,查询sit开头,第四位未知,第5位是e的key
2 返回随机的key
random key --例如运用于抽奖
3 type age --看age是什么类型的
4 exists age --看名字叫age的键是否存在,如果存在返回1
5 del age --删除名字叫age的key
6 rename age ages --将age改名为ages
7 renamenx age ages --nx是not exists的意思,当修改的名字ages在系统中不存在,才会修改成功。
rename 修改的名字ages如果再系统中存在,那么会覆盖原来的内容。
8 移动:
redis默认安装后有16个数据库,我们的命令行窗口,默认操作的是0号数据库,如果想把在0号数据库
刚刚建的key移动到1号数据库,命令如下
move age 1 --移动到1号库
select 1 --切换到1号数据库
get age --查询key
9 在memcached中有生命周期的概念,在redis中默认新建的key都是长久有效的状态,如何给新建的key加上生命周期呢,代码如下。
ttl age --查询age的生命周期, 返回值 当查询的建不存在或者永久有效时候,返回的都是-1,如果不是长久有效,返回的是对应的秒数。
expire key 100 --设置key的生命周期为100s
pttl age --查看key的生命周期,以毫秒方式返回
persist key --设置key的生命周期为长久有效。
二 :redis字符串操作
1 flushdb --冲刷掉库中的所有 key
2 set age 28 ex 10/ px 1567 --初始key时候设置生命周期,ex
set key value [ex 秒数] / [px 毫秒数] [nx] /[xx]
如: set a 1 ex 10 , 10秒有效
Set a 1 px 9000 , 9秒有效
注: 如果ex,px同时写,以后面的有效期为准
如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒
nx: 表示key不存在时,执行操作
xx: 表示key存在时,执行操作
3 mset key value key1 value1 --设置多个key和value
例如 mset a 1 b 2 c 3
4 mget key key1 --连续取出多个value
例如 mget a b c
5 修改value中某一位的值
setrange key offset value
作用:把字符串的offset偏移字节,改成value
redis 127.0.0.1:6379> set greet hello
OK
redis 127.0.0.1:6379> setrange greet 2 x --不hello第二位的l改查x
(integer) 5
redis 127.0.0.1:6379> get greet
"hexlo"
6 append word aa --追加,在key是word的value后面追加aa
7 获取value的一小部分
getrange area 1 4 --获取名字为area的key对应的value的 1到4 位
getrange area 0 -4 --获取名字为area的key对应的value的 0为到 倒数4位
8 getset key newvalue --获取旧值,覆新值
例如 set name chekl
getset name cheklone
--输出 chekl 并且name对应的value改成cheklone
9 set age 29
incr age --输出值30,自增1
decr age --输出值28,自减1
incrby age 5 --自增5
例子:把随机的A-Z 任意字母,转换成对应的小写字母
set char A
setbit char 2 1 -- setbit是将A转换成相应的ascli码,A是65 对应的2进制数是 01000001
a 对应是97 二进制数是 01100001 如果将A转换成a,只需要将二进制中左数第二位的0 置换成1 就行。
三 link 操作
lpush character a--从左侧向link表中插入 a
rpush character b--从右侧向名字是character的link表插入 b,
rpush character c--从右侧插入c
lrange character 0 -1 --查看link表character中的所有内容,输出结果是 a b c
lrange character 1 2--查看link表中从1开始,2位,输出结果是 b c,因为下标从0开始
2 从左右2边弹出值
lpop character --弹出最左边的a
lrange character 0 -1 --此时查看,链表中的值只剩下 b c
rpop character --弹出最右边的 c
lrange character 0 -1 --此时查看,链表中的值只剩下 b
3 删除
lpush character a b c a b d a
lrem character 1 b --从左到右顺序,删除第一次出现的b
lrange character 0 -1 --此时查看,链表中的值只剩下 a c a b d a
lrem character -2 a --从链表尾部删除 a
4 剪切
rpush cha a b c d e f
lrange cha 0 -1 --查看
ltrim cha 2 5 --剪切从2到5 ,执行结果是 c d e f
ltrim cha 1 -2 --从后往前截,执行结果是 d e
5 取其中某一个
lindex cha 1 --取第一个
6 查看链表长度
llen cha
7 linsert命令,在链表中查找值并插入
rpush num 1 3 5 7 9
linsert num before 3 2 --插入2 在3 的前面
linsert num after 9 10 --在9后面插入10
如果存在link 值是 1 3 5 9 9存在2个9的情况,那么执行结果为 1 3 5 9 10 9 只会在第一次出现的符合
条件的值后面执行操作,执行一次就会结束。
8 rpoppush 右边弹出,左边塞入
例如 链表task
rpush task a b c d
rpoppush task job --把task链表中的最右侧d 放入链表job中。
总结:主要对link链表的操作,主要功能有新建链表,从左侧或右侧插入值,查询整个链表中内容,查看链表
长度,从左右弹出值,删除和剪切链表,最后对2个链表就行右边弹出左边塞入的操作。