Redis的服务端和客户端命令
- 服务器端
- redis-server 启动服务器端的命令
- redis-server --help 查看帮助信息
- sudo service redis start 启动redis服务器
- sudo service redis stop 停止redis服务器
- sudo service redis restart 重启redis服务
- 客户端命令
- redis-cli 启动客户端连接的命令
- redis-cli --help 查看帮助信息
- redis-cli -h [ip地址] -p [端口号] 启动客户端连接自定义配置redis
- -c表示连接到集群
- ping 运⾏测试命令
- select n 切换数据库
- n 表示切换到第几个数据库
- 数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
- redis操作命令
- redis常见的redis命令
- redis存在以下 14 个命令组,分别是:
- 命令 注释 子命令个数
- generic 通用命令组 31
- string 字符串命令组 24
- list 列表命令组 17
- set 集合命令组 15
- sorted_set 有序集合命令组 21
- hash 哈希命令组 15
- pubsub 订阅发布命令组 6
- transactions 事务命令组 5
- connection 连接命令组 5
- server 服务命令组 31
- scripting 脚本命令组 7
- hyperloglog 3
- cluster 集群命令组 20
- geo 地理位置命令组 6
- 查看redis命令帮助
- redis-server --help
- 如何查看命令帮助:
- help @命令组
- linux常用命令
- ps -aux | grep redis 查看redis服务器进程
- sudo kill -9 pid 杀死redis服务器
- sudo redis-server /etc/redis/redis.conf 指定加载的配置文件
redis数据库的数据操作
- redis数据库--数据结构
- 数据结构类型
- redis是多条key-value的数据数据结构,每条数据都是⼀个键值对由key-value的形式组成,每个value还可以有自己一定的数据结构
- 数据结构图
- 键的类型
- 键的类型顶是字符串,且键不能重复
- 值的七种数据类型:
- string : 二进制式字符串
- lists : 顺序字符串集合
- Sets : 无顺序字符串集合
- Sorted Sets: 有序集合
- hashes : 哈希映射
- bit arrays : 简单的位映射
- hyperloglogs: 概率数据结构
- 常用五种数据类型介绍:
- 字符串string
- 简单的k/v类型,value可以是String和数字;
- 常用命令: set,get,mset,mget,setex
- 哈希hash
- Redis的Hash本质上还是一个嵌套的K/V结构的数据类似于在学习Django的JsonHTTPResponse对象,最类似的就是我们在Django中返回的Json对象
- {Hash-Key:{"字段1":属性1,"字段2":属性2,...,"字段n":属性n}}
- 常用命令:hget,hset
- 列表list
- 就是一个列表,你懂得常用命令:lpush,rpush,lpop,rpop,lrange
- 集合set
- 存储无序字符串的列表,和列表区别:当你需要以列表形式存储key的数据,又不希望出现重复数据时
- 常用命令:sadd,spop,smembers
- {key_name:ziduan1,ziduan2,...}
- 有序集合zset
- 基于set,使用分数对每个key进行大小排序,形成一个有序key集合
- 常见命令:zadd,zrange,zrem
- {key_name:score1 ziduan1,score2 ziduan2,...}
- 数据操作类型及常用操作
- 数据操作行为的种类
- 保存、修改、获取、删除
- 常见key操作
- 查看所有key
- keys pattern
- pattern支持所有的正则匹配规则
- 判断key是否存在
- exists key_name
- key_name可以是正则表达式
- 如果存在返回1,如果不存在返回0
- 查看key类型
- type key_name
- 删除key
- del key_name
- key_name可以是一个或多个
- key后边可以跟所有的正则匹配规则
- 设置key过期时间
- expire key_name seconds
- 查看key的有效时间
- ttl key
- sring类型数据操作
- string类型数据介绍
- 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。
- 字符串常见操作:
- 设置key
- set key_name value
- 设置key(携带过期时间)
- setex key_name seconds value
- key_name一旦没有了内容,那么这个key_name就自动消失了
- 同时设置多个key
- mset key1 value1 key2 value2 ...
- 给key追加数据
- append key_name value
- 查看key的值
- get key_name
- 获取多个key的值
- mget key1 key2 ...
- 注意:
- 当键不存在内容的时候,键将会被自动删除
- hash常见操作
- hash类型的介绍
- hash⽤于存储对象,对象的结构为属性、值
- 值的类型为string
- 给key的某个属性设置值
- hset key_name field value
- 给key的多个属性设置值
- hmset key_name field1 value1 field2 value2 ...
- 获取key的所有属性
- hkeys key_name
- 获取key的单个属性的值
- hget key_name field
- 获取key的多个属性的值
- hmget key_name field1 field2 ...
- 获取key的所有属性的值
- hvals key_name
- 删除key的属性
- hdel key_name filed1 filed2
- 注意:
- 当键不存在内容的时候,键将会被自动删除
- list数据常见操作
- list类型的介绍
- 列表中的元素类型为string
- 按照插⼊顺序排序
- 在key的左侧依次插入数据
- lpush key_name value1 value2 ...
- 在key的右侧依次插入数据
- rpush key_name value1 value2 ...
- 在key的指定位置前后插入数据
- linsert key_name before value(已存在) value(将要插入的新值)
- linsert key_name after value(已存在) value(将要插入的新值)
- 注意:
- value如果存在多个的话,默认是从左侧数第一个value
- 获取数据格式
- lrange key_name start_pos stop_pos
- 注意:
- 位置索引,左侧的第一个默认是0,最后一个默认是-1
- 获取所有数据
- lrange key_name 0 -1
- 给指定位置的值设定新值
- lset key index value
- 注意:
- 默认index从左侧开始,第1个是0
- index可以是负数,表示尾部开始计数,
- 如-1表示最后1个元素
- 删除指定的数据
- lrem key_name count value
- 注意:
- count > 0 : 从左开始移除指定value的个数
- count < 0 : 从右开始移除指定value的个数
- count = 0 : 移除所有指定的value
- 获取key的长度
- llen key_name
- 注意:
- 当键不存在内容的时候,键将会被自动删除
- set常见操作
- set类型介绍
- ⽆序集合
- 集合的元素为string类型
- 元素具有唯⼀性,不重复
- 对于集合没有修改操作
- 给key添加无序内容
- add key_name member
- 注意:
- member可以是1个也可以是多个
- 获取key的所有数据
- smembers key_name
- 删除key的指定数据
- srem key_name member
- 注意:
- member可以是1个也可以是多个
- 删除key的一个随机数据
- spop key_name
- 获取set中的元素数量
- scard key_name
- 注意:
- 当键不存在内容的时候,键将会被自动删除
- sorted set常见操作
- zset 类型的介绍
- sorted set,有序集合
- zset的元素为string类型
- 元素具有唯⼀性,不重复
- 每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
- 没有修改操作
- 给key添加有序的内容
- zadd key_name score member
- 注意:
- score member 是一个整体,这个整体可以是一个,也可以是多个
- 获取key的数据
- zrange key_name start stop
- 获取score在start 和stop之间的内容(获取的内容是不包含score的)
- 获取key的所有数据
- zrange key_name 0 -1
- 获取key的所有内容(获取的内容是不包含score的)
- 获取key指定权重大小范围内的数据
- zrangebyscore key_name min max
- 获取key指定数据的权重
- zscore key_name member
- 删除key指定的数据
- zrem key_name member
- member可以是1个也可以是多个
- 删除key权重在指定范围的数据
- zremrangebyscore key_name min max
- 注意:
- 当键不存在内容的时候,键将会被自动删除
- 数据库操作
- 清空当前数据库
- flushdb
- 清空所有数据库
- flushall