1. 打开一个 cmd 窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe redis.windows.conf
2.启动:
$ redis-server
3.查看是否启动:
$ redis-cli
4.测试速度
redis-benchmark
5.查看单个库的大小
dbsize
6.把当前所在库的数据罗列出来
keys*
7.移动到2号库
select 2
8.把所有库的数据删除
flushall
9.判断库中是否存在键为k1的数据
existis k1
10.将键为k1的数据移动到2号库中
move k1 2
11.把当前库的数据删除
flushdb
12.设置k1过期时间
expire k1 10
13.查看k1过期时间-1为永不过期,-2为已过期
ttl k1
五大数据类型:
String:append,strlen,incr,decr,incrby,decrby,getrange,setrange,setex,setnx,mset,mget,msetnx
1.对k1拼接字符串:append k1 123456
2.查看k1当前字符串数:strlen k1
3.incr,decr,incrby,decrby ---只能是数字
incr k1 //k1的值逐渐加1
decr k1 //k1的值逐渐减1
incrby k1 2 //k1逐渐加2
decrby k1 2 //k1逐渐减2
4.getrange,setrange
getrange k1 0 -1 //相当于getrange k1 读取所有
getrange k1 0 3 //读取k1的值中0到3的字符串 包括3
setrange k1 0 xxx //设置k1从0字符开始3位的值
5.setex设置过期时间 setnx如果不存在创建
setex k1 10 //设置ki1 过期时间10秒
setnx k11 qwer //如果k11不存在则创建,存在则无法创建成功
6.mset 合并,getset合并取, msetnx不存在则合并,只要存在一个就失效
mset k1 v1 k2 v2 k3 v3 //k1 k2 k3合并
mget k1 k2 k3 //取上述设置的
msetnx k5 v5 k6 v6 //如果k5和k6都没有的话可以创建成功,只要k5或者k6有一个存在则无法创建
List:lpush,rpush,lrange,lpop,rpop,lindex,llen,lrem,trim,rpoplpush,lset,linsert
lpush/rpush/lrange:
lpush list01 1 2 3 4 5 //先压的在低下,显示的时候为5 4 3 2 1 rpush则相反
lrange:lrange list01 0 -1 //遍历list01链表的所有元素
lpop/rpop: lpop list01 //弹出list01最上面元素(索引为0的元素),rpop则为弹出最下面元素
lindex: lindex list01 2 //取list01链表索引为2的元素 为3
llen: llen list01 //链表长度
lrem key:lrem list01 1 2 //移除链表list01中值为2的元素,移除1个
ltrim key: ltrim list01 0 2 //截取链表元素从索引0到2
rpoplpush:rpoplpush list01 list02 //将list01最下面元素(索引值最大元素)移到list02链表的最顶层(索引值最小)
lset key index value:lset list01 0 2//设置list01索引为0的值为2
linsert key before/after
Set:sadd,smembers,sismember,scard,srem,srandmember,spop,smove,sdiff,sinter,sunion
sadd/smembers/sismember:
sadd set01 1 2 3 //往set中添加值
smsmbers set01 //查看set01中的所有值
sismember set01 1 //判断set01中1的值是否存在
scard:scard set01 //查看set01里面的元素个数
srem key value: srem set01 1 //移除set01中值为1的元素
srandmember key: srandmember set01 //随机取出set01中的一个元素
spop key:spop set01 //随机弹出set01中的一个元素
smove:smove set01 set02 2 //将set01中的值为2的元素添加到set02中
sdiff: sdiff set01 set02 //取两个集合的差值,如果set01为 1 2 3 set02为2 4 5 6 则结果为1 3
sinter:sinter set01 set02 //取两个集合的交集
sunion:sunion set01 set02//取两个集合的并集
Hash:hset,hget,hmset,hmget,hgetall,hdel,hlen,hexists,hkeys,hvals,hincrby,hincrbyfloat,hsetnx
hset:hset user id 1 //创建user对象,id为1
hget:hget user id //获取user对象的id
hmset:hmset user id 1 name zhf age 18 //创建user对象,添加属性id,name,age
hmget:hmget user id name age //获取user对象的id,name,age属性
hgetall:hgetall user //获取user对象的所有属性
hdel:hdel user id//删除user对象的id属性
hlen:hlen user//判断user对象有多少属性
hexists:hexists user id //判断user对象是否有id属性
hkeys:hkeys user //获取user对象的属性集
hvals:hvals user //获取user对象的属性值集
hincrby:hincrby user id 1 //user对象的id属性加1
hincybyfloat:hincrby user id 0.1 //user对象的id属性按照浮点数类型增加
hsetnx:hsetnx user gender 男 // 对user对象新增属性,如果属性存在则无法新增,不存在则可以新增
Zset:zadd,zrange,zrem,zcard/zcount/zrank/zscore,zrevrank,zrevrange,zrevrangebyscore
zadd:zadd salary 3000 peter 3500 tom 4000 nick//往有序列表添加数据(不可添加重复数据)
zrange:zrange salary 0 -1 withscopes //显示所有成员和薪水
zrem:zrem salary nick // 删除成员nick
zrank:zrank salary nick //显示nick的薪水排名,越低则排名越低
zscore:zscore salary nick //显示nick的薪水
zrevrank:zrevrank salary nick //显示nick的薪水排名,越低排名越高
zrevrange:zrevrange salary 0 -1 //显示所有成员按照正序排列
zrevrangebyscore:zrevrangebyscore salary 4000 3500 //薪水在3500到4000的正序排列