Redis-基础操作

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

刘小恺(Kyle) wechat
如有疑问可联系博主