redis的常用命令

redis的事务很弱,基本不用,因为他不会给我们回滚,比如有些语法错误他检测不出来不会回滚。
watch 可以监听key,在监听的过程中(在监听的范围内可以修改key的值)如果你加上事务,则不能改变key的值,就好比监听的key上了一把锁,如果要改变key、的值,需要unwatch一下

设置和获取

set name lzh
get name

getset name xx     //先得到后设置

设置自增长

set count 1
incr count       //增加1,变成2
decr count       //减少1,变成1

自定义增长和减少

incrBY 变量名  2    意思是增加2
decrby 变量名  2    意思是减少2

一次性设置多个值

mset str1 aa str2 bb str3 cc

获取字符串长度

strlen str1     //返回长度

获取字符串指定范围

set var asdfgh
getrange var 0 3    //返回asdf

设置字符串指定范围的值

set var asdfgh
setrange var 2 oo   //var 变成 asoogh

检验key存在不存在

exists var //存在返回1   不存在返回0

只有key不存在的时候才能设置成功

setnx var5  haha    //成功

设置有时间限制的变量

第一种方式(单位是秒)
setEX  key seconds values
setex  var 10  lzh   //设置var变量值为lzh,60秒后消失

TTL var    //查看还剩多少秒

第二种方式
set var asdfg
expire var 10   //设置10s之后消失



设置单位是毫秒
psetex var 2000 helloword    //设置2000毫秒之后过期

pttl var     //查看还剩多少时间

移动数据到另外一个库

move name 2      //意思是把name变量移动到2号库下

查看数据类型

type 变量名

在变量后面加值

append var 12345      //就是把变量var的值后面追加12345

当key不存在的时候插进去,存在不插

setnx key  value     //成功返回1

插入数组

lpush list1 1 2 3 4 5    //把key为list1,值为1 2 3 4 5 的值插进去  左边插入 ,返回的时候反着出,
查看
lrange list1 0 -1      //返回 5 4 3 2 1 

rpush list2 1 2 3 4 5    //把key为list1,值为1 2 3 4 5 的值插进去  右边插入 ,返回的时候正着出,
查看
lrange list2 0 -1      //返回  1 2 3 4 5


通过下标得到数组某个值
lindex list1 4    //得到1  最后一个下标

删除数组

lpop list1  删除5    最上面的那个
rpop list1   删除1    最下面的一个


lrem list1 2 3    //意思是删除list1数组的两个3

截取指定的范围

127.0.0.1:6379> RPUSH list3 1 2 3 4 5 6 7 8 9
(integer) 9
127.0.0.1:6379> lrange list3 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"
9) "9"
127.0.0.1:6379> LTRIM list3 0 3
OK
127.0.0.1:6379> lrange list3 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> 

把list1 尾部的值给list2顶部

rpoplpush list1 list2

设置数组的值
lset是从上面往下找的!!!!!!!!!

127.0.0.1:6379> lrange list3 0 -1
1) "2"
2) "3"
127.0.0.1:6379> lset list3 1 xx
OK
127.0.0.1:6379> lrange list3 0 -1
1) "2"
2) "xx"
127.0.0.1:6379>

指定插入的位置

127.0.0.1:6379> lrange list3 0 -1
1) "2"
2) "xx"
127.0.0.1:6379> linsert list3 after 2 yy
(integer) 3
127.0.0.1:6379> lrange list3 0 -1
1) "2"
2) "yy"
3) "xx"
127.0.0.1:6379> 

set

创建和查看

//设置set1
127.0.0.1:6379> sadd set1 1 1 2 2 3
(integer) 3
//查看set1
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> 
//查看是不是里面的值
127.0.0.1:6379> SISMEMBER set1 1
(integer) 1
127.0.0.1:6379> SISMEMBER set1 2
(integer) 1
127.0.0.1:6379> SISMEMBER set1 4
(integer) 0
127.0.0.1:6379> 


//删除指定的值
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SREM set1 3
(integer) 1
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "2"
127.0.0.1:6379> 


//随机得到3个值
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
127.0.0.1:6379> SRANDMEMBER set1 3
1) "6"
2) "1"
3) "2"
127.0.0.1:6379> SRANDMEMBER set1 3
1) "4"
2) "5"
3) "1"
127.0.0.1:6379> 


//随机删除一个数字
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
127.0.0.1:6379> SPOP set1
"2"
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "3"
3) "4"
4) "5"
5) "6"
6) "7"
127.0.0.1:6379> SPOP set1
"1"
127.0.0.1:6379> SMEMBERS set1
1) "3"
2) "4"
3) "5"
4) "6"
5) "7"
127.0.0.1:6379> SPOP set1
"6"
127.0.0.1:6379> SMEMBERS set1
1) "3"
2) "4"
3) "5"
4) "7"
127.0.0.1:6379> SPOP set1
"4"
127.0.0.1:6379> SMEMBERS set1
1) "3"
2) "5"
3) "7"


//把一个set的值放到另外一个set
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> sadd set2 4 5 6
(integer) 3
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SMEMBERS set2
1) "4"
2) "5"
3) "6"
127.0.0.1:6379> SMOVE set1 set2 2
(integer) 1
127.0.0.1:6379> SMEMBERS set2
1) "2"
2) "4"
3) "5"
4) "6"
127.0.0.1:6379> 




//两个set的差   这里是set1 有 set2 没有   因为set1 在前面
差集
127.0.0.1:6379> SMEMBERS set2
1) "2"
2) "4"
3) "5"
4) "6"
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "3"
3) "4"
4) "5"
127.0.0.1:6379> SDIFF set1 set2
1) "1"
2) "3"
127.0.0.1:6379> 


//交集
127.0.0.1:6379> SINTER set1 set2
1) "4"
2) "5"

//并集
127.0.0.1:6379> SUNION set1 set2
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
127.0.0.1:6379> 

hash

key key value 的形式

设置   
127.0.0.1:6379> hset user name zhangsan
(integer) 1
查看
127.0.0.1:6379> hget user name
"zhangsan"


设置多个
127.0.0.1:6379> hmset customer id 1 name lisi age 22
OK
查看多个
127.0.0.1:6379> hmget customer id name age
1) "1"
2) "lisi"
3) "22"
127.0.0.1:6379> 
第二种
127.0.0.1:6379> HGETALL customer
1) "id"
2) "1"
3) "name"
4) "lisi"
5) "age"
6) "22"
127.0.0.1:6379> 

删除
127.0.0.1:6379> hdel customer name
(integer) 1
127.0.0.1:6379> hmget customer id name  age 
1) "1"
2) (nil)
3) "22"
127.0.0.1:6379> 


得到keys  和 vals   
127.0.0.1:6379> hkeys customer
1) "id"
2) "age"
127.0.0.1:6379> hvals customer
1) "1"
2) "22"
127.0.0.1:6379> 
上一篇:[转] 面向对象原则之GOF是招式,九大原则才是精髓


下一篇:python第六天