redis启动和关闭
Redis-server.exe redis.windows.conf //启动本地服务端redis
Shutdown //关闭redis服务端
Exit //退出
Ps -ef|grep redis //查看redis进程
Redis-cli.exe -h ip -p 端口号 //连接redis
Config get requirepass //获取redis的密码
Config set requirepass “123456”//设置redis密码为123456
Auth 密码 //使用密码登陆
Maxclients 参数值 //设置能连接redis的最大客户端的数量
Maxmemory-policy noeviction //内存到达上限之后的处理策略
- volatile-lru:只对设置了过期时间的key进行LRU(默认值)
- Allkeys-lru:删除lru算法的key
- Volatile-random:随机删除即将过期key
- allkeys-random:随即删除
- Volatile-ttl:删除即将过期的
- Noeviction:永不过期,返回错误
Key命令
select 索引值 //切换到该索引下的库
ping //查看连接是否正常,返回PONG表示正常
keys * //表示查看该库下所有的key
clear //清空当前控制台
FLUSHALL //清空该库下说有的键
set name dingdada //添加一个key为name,value为dingdada的数据
get key//查看key的值
del kay //删除当前key和value,返回的是删除key的数量
exists key //判断当前key是否存在
move name 1 //把当前key为name的数据移动到库1中,成功返回1,失败返回0
Expire name 15 //设置key为name的数据过期时间为15秒,单位是秒
Pexpire key 时间 //和expire命令的作用类似,成功返回1,不存在或失败返回0,单位是毫秒
Expireat name 1604584100 //用于以UNIX时间戳格式设置key的过期时间,设置成功返回1,不成功或过期返回0
Persist key //用于移除给定key的过期时间,使key永不过期,成功返回1,不存在或没过期时间返回0
ttl name //查看当前key为name的剩余生命周期时间,如果返回-2,证明key已过期
type name //查看当前key为name的数据类型
dump key //用于序列化给定key,并返回被序列化的值,key不存在返回nil
Rename 老key 新key //修改key的名,把老key修改为新key
String字符串:可以表示字符串,整数,浮点数三种值,redis会自动识别这3中值
Set key value //添加一个数据,注意:插入时如果数据有空格需要用””引用,因为空格相当于分隔符,相当于该参数结束
Get key //获取当前key的值
Exists key //查看该key是否存在,存在返回1,不存在返回0
Append name dingdingding //追加到key为name的数据后拼接值为dingdingding,如果key存在类似于Java中字符串拼接
Strlen key //查看该key值的字符串长度
Incr key //指定key的数据自增1,返回结果,相当于i++
Decr key //指定key的数据自减1,返回结果,相当于i--,可以一直为负数(一般用来做文章取消点赞,取消收藏等功能)
Incrby key 10 //指定key的数据自增10,返回结果
Decrby key 3 //指定key的数据自减3,返回结果
Getrange key 0 4 //截取字符串,相当于subString()方法,下标从0开始,不会改变原有数据,如果是getrange key 0 -1 相当于get key,获取整条数据
Setrange key 5 888 //字符串替换,相当于replace()方法,下标从0开始,但replace方法是指定替换字符,而setrange是从指定位置开始替换,替换的数据根据所需替换的长度一直,返回替换后的长度
Setex name 15 dingdong //新建一个key为name,value为dingdong,过期时间为15秒的字符串数据
Setnx key value //如果可以不存在,新增数据,返回1,如果存在返回0,跟set的区别是set会替换原来的值,setnx不会
Mset key1 value1 key2 value2 ... //插入多条数据
Mget key1 key2 key3 ... //查看多条数据
Msetnx key1 value1 key2 value2 ... //msetx是一个原子性的操作,在一定程度上保证了事务,要么都成功要么都失败,相当于if中的&&(与)
Mset student:1:name dingdong1 student:1:age 12 //新增key为student(相当于类名),1和2相当于id,name和age相当于属性
Keys * //查看所有key
Mget student:1:name student:1:age //获取数据
Getset name ding //先get再set,先获取key,如果没有,set值进去,如果有,set替换新的值,返回的是get的值
List数据类型
Lpush list v1 //新增一个集合名为list ,元素为v1的集合
Lpush list v1 v2 v3 v4 v5 //批量添加集合元素(展示顺序是:v5 v4 v3 v2 v1,再插入v6会在v5前面)
Lrange list 0 -1 //查询list的所有元素
Lrange list 0 1 //指定查询列表中的元素,从下标0开始,1结束两个元素,比如元素有v5 v4 v3 v2 v1,0到1的元素就是v5 v4
Lrange list 1 1 //指定(索引)查询列表中的唯一元素
Rpush list rv0 //右插入,跟lpush相反,这里添加进去的元素都在尾部(比如元素中有v5 v4 v3 v2 v1,插入进去rv0,展示顺序是v5 v4 v3 v2 v1 rv0)
[注:可以做一个保存记录值,每次都使用lpush,老的数据永远在后面,每次获取0 0位置的元素,是不是相当于更新了数据的操作,但是数据记录还在,想要查询记录即可获取集合所有元素.]
Lpop list //从头部开始移除第一个元素,返回的是移除的元素
Rpop list //从尾部开始移除第一个元素,返回的是移除的元素
Lindex list 1 //获取指定下标位置集合的元素,下标从0开始计数
Llen list //获取指定集合的元素长度,相当于Java中的length或者size
Lrem list 1 v2 //移除list集合元素中是v2的1个元素,0和1的结果是一样的
Lrem list 2 v2 //移除list集合元素中是v2的3个元素,参数数量如果实际集合中元素数量达不到不会报错,全部移除后返回成功后的数量值
Ltrim list 1 2 //通过下标截取指定的长度,这个list已经被改变,只剩下所指定截取后的元素
rpoplpush list newlist //移除list集合中的最后一个元素到新的集合newlist中,返回值是移除的最后一个元素值
Lset list 1 newV5 //更新list集合中下标为1的元素为newV5,如果指定集合不存在报错,如果集合存在,下标不存在,报错
Linsert list after v3 insertv3 //在集合中的v3元素之后添加上一个元素insertv3
Linsert list before v3 insertv3 //在集合中的v3元素之前添加上一个元素insertv3
Set集合:元素唯一不重复
Sadd 集合名s1 //添加set集合(可批量可单个)
Smembers 集合名//查看set中所有元素
Sismember 集合名 元素 //判断某个元素是否在set中,在则返回1,不在返回0
Scard 集合名//查看集合的长度,相当于size,length
Srem 集合名 元素 //移除set集合中指定元素
Srandmember 集合名 1 //随机抽取集合中1(参数值可变)个元素返回,如果不填参数默认抽1个值,但下面返回不会带序号值
Spop 集合名 1 //随机删除集合中1(参数可变)个元素
Smove 集合名 新集合名 1 //移动集合中的指定元素到新集合中
Sdiff 集合名1 集合名2 //查询指定的set之间的差集,可以是多个set
Sinter 集合名1 集合名2 //查询指定的set之间的交集,可以是多个set
Sunion集合名1 集合名2 //查询指定的set之间的并集,可以是多个set
注:可实现共同好友,共同关注等需求
Hash
Hset hash名 name dingdada //添加一个hash ,键是name,值是dingdada
Hget hash名 name //获取hash中key为name的值
Hgetall hash名 //获取hash 中所有的key和value
Hdel hash名 name age //删除指定hash 中name和age(可多个),可以删除后对应的value也会被删除
Hlen hash名 //获取指定hash的长度,相当于length size
Hexists hash名 name //判断key是否存在于指定的hash,存在返回1,不存在返回0
Hkey hash名 //获取指定hash中的所有key
Hvals hash名 //获取指定hash中所有value
Hincrby hash名 key 2 //让hash 中指定的key的value +2
Hincrby hash名 key -1 //让hash 中指定的key的value -1
Hsetnx hash名 key value //添加不存在key就新增返回新增成功的数量(只能单个增加),添加存在返回0
注:比string适合存对象
Zset集合:有序集合
Zadd 集合名 1 one 2 two 3 three //添加zset值,可单个可多个
Zrange 集合名 0 -1 //查询所有的值
Zrangebyscore 集合名 -inf +inf //将zset的值根据key来从小到大排序并输出
Zrangebyscore 集合名 0 1 //只查询key<=1的值并且排序从小到大
Zrevrange 集合名 1 -1 //从大到小排序输出
Zrangebyscore 集合名 -inf +inf withscores //查询指定zset的所有值,包含序号的值
Zrem 集合名 元素 //移除指定的元素,可多个
Zcard 集合名 //查看zset的元素个数,相当于长度,size
Zcount 集合名 0 100 //查询指定区间内的元素个数,区间是可变的
注:成绩表排序,工资表排序,年龄排序等需求可以用zset来实现