redis概述
redisAPI查询网站
登录退出redis
redis-server redis.conf #打开redis服务 redis-cli #进入redis的命令 shutdown #关闭redis exit #退出redis
快捷清屏的方式
CTRL+L
基本数据类型string
切换数据库(数据库的编号从0开始的) select 3 清空数据库 flushdb #清空当前数据库 flushall #清空所有数据库 设置键值(存在会覆盖掉原来的值) set key value 根据键值获取值 get key 返回所有键 keys * keys key #存在key则会返回1 不存在返回0 判断一个字符串是否存在 exiists key #存在key则会返回1 不存在返回0 移除key move key db #从哪个数据库移除key 设置key的过期时间 expire key seconds #设置key的过期时间,单位是秒 查看key的剩余时间 ttl key 追加字符串 append key value #在key的末尾追加字符串value。返回字符串的长度 获取字符串的长度 strlen key #获取key的长度 数字的自增自减,设置步长 incr key #将key自增1 decr key #将key自减1 incrby key inrement #将key自加increment decrby key decrement #j将key自减decrement 截取字符串(前后都包括)原字符串不改变 getrange key a b #截取key的[a,b] getrange key 0 -1 #获取字符串key 替换字符串(字符串的角标从0开始)key的offset开始的value长度个字符被替换成value, setrange key offset value #从key的offset处替换value 设置字符串(如果不存在再设置)(如果存在key,则设置key失败) setnx key value 设置字符串和过期时间 setex key seconds value #设置字符串key的value和过期时间seconds 同时设置多个值 mset key1 value1 key2 value2 ..... 设置多个key(不存在再设置) msetnx key1 value1 key2 value 2 #原子性操作!!!! 同时获取多个值 mget key1 key2 ..... 先get再set(先获取key的值再重新设置key的值) getset key value
基本数据类型List列表
所有list命令都是l开头的
按顺序向list中头部添加元素 lpush key element .... 获取list中的值 lrange key start stop lrange list 0 -1 #获取list集合中全部的元素,从头到尾输出 按顺序向list的尾部添加元素 rpush key element ...... 从list的头部开始按顺序删除count个元素并返回元素 lpop key coount 从list的尾部开始桉顺序删除count个元素并返回元素 rpop key count 通过下标获取list中指定位置的值(下标从0开始) lindex key index 返回list的长度 llen key 移除指定元素 lrem key count element #从集合key中移除count个元素element,若集合中element的数量小于count也不会报错 截取list(原来的集合会改变) ltrim key start stop (start和stop为边界下标[start,stop]) 将list中最后一个元素移除,并放入新的列表中 rpoplpush source destination #source是被删除的集合,destination 是加入元素的集合 判断列表是否存在 exists key 将列表中指定下标的值替换为另外一个值 lset key index element 插入操作 linsert key before|after pivot element # pivot 表述元素的值
基本数据类型set集合
集合中添加元素 sadd key member .... 查看set集合中所有的值 smembers key 判断某一个集合是否在集合中 sismember key member 获取set集合中元素的个数 scard key 移除set集合中指定的元素 srem key member ....... 随机抽取count个元素 srandmember key [count] # []表示可以可无 随机删除set集合中的元素 spop key [count] 将set集合中指定的值移动到另一个set集合中 smove source destination member 两个set集合的差集 sdiff key [key1.....] # key中和[key1]中都不同的元素 两个set集合的交集 sinter key [key1.....] # key中和[key1]中都相同的元素 两个set集合的并集 suion key [key1......] # key和[key1]的并集
基本数据类型hash
可以理解是数据结构中的hashMap,
添加元素 hset key filed value [filed value] 获取hash集合中某一个具体的值 hget key filed 获取多个字段的值 hmget key filed ..... 获取hash集合中全部的数据 hgetall key 删除hash集合中指定的key字段,对应的value会自动被删除 hdel key filed ....... 获取hash集合的长度 hlen 判断hash中指定字段是否存在 hexists key filed 只获取所有key hkeys key 只获取所有value hvals key 对hash集合中的元素进行自增运算 hincrby key filed increment # 将集合key中的 filed 进行自增运算,increment可以是负数 如果不存在filed则设置filed hsetnx key filed value
基本数据类型有序集合zset
添加元素 zadd score member [score member] 显示集合的全部数据 从小到大 zrangebyscore key-inf +inf 显示集合的全部数据 从大到进行排序 zrevrange key 0 -1 显示全部的用户并且附带score zrangebyscire key -inf +inf withscores # [-inf ,+inf ] 查找的范围 移除有序集合中的指定元素 zrem key member 获取zset集合中元素的个数 zcard key 获取指定区间的成员数量 zcount key min max # [min ,max] 表示区间
还有三种特殊数据类型自己去查API吧
Geospatial地理位置
Hyperloglog(可以找不重复的元素)
Bitmap(位图)
redis官方网站
redis中的事物
redis中事物执行的流程
开启事务 multi 命令.... 执行事物 exec 取消事物 discard
取消事物,事物内的命令都不会被执行
异常
redis的监视器(乐观锁)
watch key #获取key的监视器 unwatch key #释放锁