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>