Redis命令总结
文章
01.redis安装
1. 在主机上安装 (1) 修改后修改配置文件 (2) 设置开机启动 (3) 将redis的bin命令添加到PATH 2. 在docker安装redis (1) 无持久化方式 (2) 有持久化方式 (3) 自定义redis配置 官网:http://redis.io redis定义:是开源、BSD许可、高级的key-value存储系统。可以用来存储字符串、哈希结构、链表、集合,因此常用来提供数据结构服务。 1. 在主机上安装 名称 操作 下载redis源代码 wget http://t.cn/Eqw5XJ3 解压 tar -zxvf 5.0.2.tar 进入目录 cd redis-5.0.2 编译 make 安装指定目录 make install PREFIX=/usr/local/redis install 复制配置文件 cp redis.conf /usr/local/redis/ (1) 修改后修改配置文件1234567891011# 打开配置文件vi...
02.库和key操作命令
key操作命令 set 设置key的值 get 获取key的值 del 删除key exists 判断key是否存在 type 获取key类型 expire 设置key有效期 tll 查看key有效期 rename 重命名key renamenx 重命名不存在的key persist 设置key永久有效 move 把key移动到其他库 库操作命令 dbsize 查看当前有多少个key select 选择库 flushdb 删除选中数据库中的key flushall 删除所有库的key key操作命令set 设置key的值1234567set key value# 示例127.0.0.1:6379> set name zhangsanOK127.0.0.1:6379> set age 25OK get 获取key的值12345get key# 示例127.0.0.1:6379> get name"zhangsan" del 删除key12345del key# 示例127.0.0.1:6379> del name(inte...
03.字符串类型操作
set 设置kv、效期、判断key是否存在 mset 一次性输入多个kv setrange 修改偏移字节值为valuev append 在key的值后面追加字符串 getrange 获取key值的部分内容 getset 设置新值返回旧值 incr/decr 指定key的值加/减1 incrby/decrby 指定key的值加/减number incrbyfloat 指定key的值加浮点数 setbit 设置二进制位上的值 getbit 获取二进制位上的值 bitop 对多个key逻辑操作 set 设置kv、效期、判断key是否存在123456789101112131415161718set key value [ex 秒数]|[px 毫秒数] [nx]|[xx]# 设置kv时也可以设置有效期和判断key是否存在# ex和px不要同时写,否则以后面有效期为准# nx表示key不存在时执行操作# xx表示key存在时执行操作# 示例127.0.0.1:6379> set name zhangsanOK127.0.0.1:6379>...
04.链表类型操作
lpush/rpush 在链表头/尾增加一个成员 lrange 获取链表成员 lpop/rpop 弹出链表中头/尾的成员 lrem 删除链表成员 lindex 获取链表索引对应的值 llen key 获取链表成员个数 linsert 在链表中指定位置插入成员 blpop/brpop 一直等待弹出头/尾成员 lpush/rpush 在链表头/尾增加一个成员123456789101112lpush/rpush key value# 在链表头/尾增加一个成员,返回链表成员的个数# 示例127.0.0.1:6379> lpush letters A(integer) 1127.0.0.1:6379> rpush letters B(integer) 2127.0.0.1:6379> rpush letters C(integer) 3127.0.0.1:6379> rpush letters D(integer) 4 lrange 获取链表成员12345678910111213l...
05.无序集合操作
sadd 往集合添加成员 srem 删除集合成员 spop 随机删除集合一个成员 srandmember 随机获取集合成员 smembers 获取集合所有的成员 sismember 判断成员是否存在集合中 scard 获取集合成员的个数 smove 把一个集合中成员移动到另一个集合 sunion 获取多个集合的并集 sdiff 获取多个集合的差集 sinterstore 获取多个集合的交集并储存 集合特性:无序性、唯一性、确定性 sadd 往集合添加成员123456789sadd key value1 value2 ...# 往集合key中增加成员# 增加相同成员时只会添加一个(唯一性)# 示例127.0.0.1:6379> sadd names zhangsan lisi(integer) 2127.0.0.1:6379> sadd names wangwu wangwu(integer) 1 srem 删除集合成员1234567891011srem key value1 value2 ...# 删除集合中为value1 value2...成员# 返回真正删除...
06.有序集合操作
1. zadd 往有序集合添加成员 2. zrange 按名次取成员 3. zrangebyscore 按分数取成员 4. zscore 获取指定成员的分数 5. zcount 计算分数区间成员个数 6. zrank/zrevrank 获取成员升序/降序的排名 7. zrem 删除有序集合成员 8. zremrangebyrank 按排名删除成员 9. zremrangebyscore 按分数删除成员 10. zinterstore 求交集再计算 11. zunionstore 求并集再计算 1. zadd 往有序集合添加成员12345678910zadd key score1 key2 score2 key2 ...# 往有序集合key添加成员# 示例127.0.0.1:6379> zadd ages 28 zhangsan 24 lisi 26 wangwu(integer) 0127.0.0.1:6379> zrange ages 0 -11) "lisi"2) "wangwu"3) "z...
07.哈希数据类操作
1. hset 设置哈希field域的值 2. hmset 设置哈希多个field域的值 3. hget 获取field域的值 4. hmget 获取多个field域的值 5. hgetall 获取所有field域和值 6. hlen 获取field的数量 7. hdel 删除field域 8. hexists 判断field域是否存在 9. hincrby 使field域的值加上整数 10. hincrbyfloat 使field域的值加上浮点数 11. hkeys 获取所有所有field域的名字 12. kvals 获取所有所有field域的值 1. hset 设置哈希field域的值1234567891011hset key field value# 把key中 filed域的值设为value# 注:如果没有field域,直接添加,如果有,则覆盖原field域的值# 示例127.0.0.1:6379> hset user name zhangsan(integer) 1127.0.0.1:6379> hset user age 25(integer) 112...
08.经纬度数据操作
1. geoadd 添加地理位置信息 2. geopos 查询位置的坐标 3. geodist 查询位置距离 4. georadius 查询某点的附近点 5. georadiusbymember 查询某位置距离的附近点 6. geohash 查询位置GEOHASH编码 1. geoadd 添加地理位置信息命令:geoadd key longitude latitude member [longitude latitude member ...] longitude表示经度,latitude表示纬度,member表示成员 命令描述:将指定的地理空间位置(纬度、经度、名称)添加到指定的key中。 返回值:添加到sorted set元素的数目,但不包括已更新score的元素。 123# 示例127.0.0.1:6379> geoadd Guangdong-cities 113.2278442 23.1255978 Guangzhou 113.106308 23.0088312 Foshan 113.7943267 22.9761989 Dongguan 114.05...
09.事务
1. 事务命令 2. 乐观锁 1. 事务命令 命令 说明 muitl 开启事务命令 command 普通命令 discard 在提交前取消 exec 提交 注:discard只是结束本次事务,前2条语句已经执行,造成的影响仍然还在。 语句出错有两种情况: - 语法有问题,exec时报错,所有语句取消执行,没有对数据造成影响。 - 语法本身没错,但适用对象有问题(比如 zadd 操作list对象),exec之后,会执行正确的语句,并跳过有不适当的语句,对数据会造成影响,这点由程序员负责。 2. 乐观锁redis的事务中启用的是乐观锁,只负责监测key没有被改动,如果在事务中发现key被改动,则取消事务。使用watch命令来监控一个或多个key,使用unwatch命令来取消监控所有key。 123456# 示例watch keymuitl操作数据...execunwatch 模拟抢票,场景:用户买一张票,扣掉100元 1234567891011121314151617181920212223242526272829303132# 在zhangsan买票...
10.频道发布与订阅
1. publish 发布频道 2. subscribe 订阅指定频道 3. psubscribe 订阅已匹配频道 发布端:publish 订阅端:subscribe,psubscribe 1. publish 发布频道123456789101112publish 频道名称 发布内容# 示例127.0.0.1:6379> publish music_2 "It's Not Goodbye"(integer) 1127.0.0.1:6379> publish music "just one last dance"(integer) 2127.0.0.1:6379> publish music "stay"(integer) 2127.0.0.1:6379> publish music_2 "It's Not Goodbye"(integer) 1 2. subscribe 订阅指定频道123456789101112131415161718192...













