- 一、redis简介 Redis:REmote DIctionary Server(远程字典服务器)
- 1.高性能的(key/value)分布式内存数据库,基于内存运行, 并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。
- 2.特点:
- 1.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
- 2.不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
- 3.Redis支持数据的备份,即master-slave模式的数据备份 主从配置
- 二、redis 安装及基本命令
- 1.安装 sudo apt-get install redis-server
- 2.检测 redis-cli 显示有ip和端口好6379 则安装成功
- 3.打开配置文件命令:sudo subl /etc/redis/redis.conf 绑定地址:如果需要远程访问,可将此行注释 bind 127.0.0.1
- 4.启动 sudo service redis start
- 5.停止 sudo service redis stop
- 6.重启 sudo service redis restart
- 三、数据操作
- redis是key-value的数据,所以每个数据都是一个键值对 ,键的类型是字符串,值的类型分为五种:字符串string,哈希hash,列表list,集合set,有序集合zset
- 数据库默认有16个 分别是0-15 切换数据库 select [0-15]
- 1.对键的操作
- 1.keys * 查看所有键
- 2.exists key 查看键是否存在 1表示存在 0 表示不存在
- 3.type key 查看该键的值的数据类型
- 4.del key1 key2 删除键可以一次性删除多个 ,删除成功返回1,失败返回0
- 5.expire key 秒数 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。
- 6.ttl key 查看过期时间
- 2.string 这儿的string包括字符串,数值,bool等
- 1.set 键名 值 添加或修改一条数据
- 2.get 键名 根据键名获取它的值
- 3.mset 键名1 值 键名2 值 一次性添加或修改多条数据
- 4.mget 键名1 健名2 一次性获取多个键的值
- 5.append 健名 值 给该键的值后面追加值
- 6.incr/decr 键名 给改键的值+或- 1 (改值必须为数值)
- 7.incrby/decrby 键名 n 给改键的值+或- n (改值必须为数值)
- 8.getrange 键名 开始索引 结束索引 获取该键的范围值
- 9.setrange 键名 开始索引 新值 设置该键的范围值
- 10.setex 键名 秒数 值 添加或修改一条数据并设定过期时间
- 11.setnx 键名 值 添加一条数据(当该键存在时,无法使用该方法修改该键的值)
- 12.msetnx 键名1 值 键名2 值 添加多条数据(当有一个键存在时,全部添加失败)
- 3.hash hash的值可以看成一个字典 key:value
- 1.hset 键名 key value 添加或修改该键的单个key value
- 2.hget 键名 key 获取该键的key对应的value
- 3.hmset 键名 key1 value key2 value 添加或修改该键的多个key value
- 4.hmget 键名 key1 key2 获取该键的多个key 对应的 value
- 5.hgetall 键名 获取该键的所有key,及 value
- 6.hkeys 键名 获取该键的所有key
- 7.hvals 键名 获取该键的所有value
- 8.hdel 键名 key 删除该键的一个key
- 9.hlen 键名 获取该键的所有key,value 的组数
- 10.hexists 键名 key 返回1表示该键存在这个key 反之不存在
- 11.hincrby 键名 key n 让该键的key对应的value+n (这个value必须为数字,n为整数)
- 12.hincrbyfloat 键名 key n 让该键的key对应的value+n (这个value必须为数字,n为小数)
- 13.hsetnx 键名 key value 为该键添加一组key value(当该key存在时,无法使用该方法修改该key的vlaue)
- 4.list 列表中的元素类型为string
- 1.lpush 键名 1 2 3 4 为该键的列表从左边添加数据
- 2.rpush 键名 1 2 3 4 为该键的列表从左边添加数据
- 3.lrange 键名 开始下标 结束下标 查看该键的列表的范围值
- 4.lpop/rpop 键名 该键的列表头部/尾部删除一个元素
- 5.lindex 键名 下标 查看该键列表指定索引的值
- 6.llen 键名 查看改键列表的长度
- 7.lrem 键名 n 值 删除该键列表n个该值
- 8.ltrim 键名 开始下标 结束下标 截取(按照下标)并赋值给该键列表
- 9.rpoplpush 键名1 键名2 从键1的列表尾部删除一个元素,并添加到键2的列表的头部
- 5.set 集合中的元素不能重复,元素为string类型
- 1.sadd 键名 1 2 3 4 4 为该键的集合添加数据(只进去一个4)
- 2.smembers 键名 查看该键的集合中的所有元素
- 3.sismember 键名 值 判断该键的集合有没有这个值
- 4.scard 键名 查看该键的集合长度
- 5.srem 键名 值 删除该键的集合中的这个值
- 6.srandmember 键名 n 随机选出n个该键的集元素
- 7.spop 键名 随机删除一个该键集合中的元素
- 8.smove 键名1 键名2 值 将键1集合中该值移动到键2的集合中
- 9.sdiff 键名1 键名2 取键1集合里面与键2集合中不同的值 差集
- 10.sinter 键名1 键名2 取键1集合里面与键2集合中相同的值 交集
- 11.sunion 键名1 键名2 取键1集合里面与键2集合所有的值(不重复) 并集
- 6.zset 在set的基础上加了一个score(分值) 权重
- 1.zadd 键名 score值 值 score值 值 .... 添加或修改该键的有序集合
- zadd 键名 100 "张三" 90 "李四" ...
- 2.zrange 键名 开始下标 结束下标 查看该键有序集合范围下标的值
- 3.zrange 键名 (开始下标 (结束下标 withscores 查看该键有序集合范围下标(不包括开始和结束下标)的权重及值
- 4.zrangebyscore 键名 开始分值 结束分值 查看该键有序集合范围分值的值
- 4.zrangebyscore 键名 (开始分值 (结束分值 withscores 查看该键有序集合范围分值(不包括开始和结束分值)的权重及值
- 5.zrem 键名 值 根据值删除该键有序集合中的一组(分值及值)
- 6.zcard 键名 获取该键有序集合的长度(分值和值算一组)
- 7.zcount 键名 开始分值 结束分值 获取该键有序集合范围分值的数据长度
- 8.zcount 键名 (开始分值 (结束分值 获取该键有序集合范围分值的数据长度(不包括开始和结束分值)
- 9.zrank 键名 值 获取该键的有序集合值对应的下标
- 10.zscore 键名 值 获取该键的有序集合值对应的分值(权重)
- 1.zadd 键名 score值 值 score值 值 .... 添加或修改该键的有序集合
- 四、消息的订阅和发布
- 1)开三个终端,都去连接上redis
- 2)在其中两个终端上去订阅频道:subscribe 频道名(可以是多个)
- 3)在第三个终端上去发布消息 publish 频道名 消息信息
- 五、主从复制
- 1)主机:进入配置文件,把bind选项修改为自己电脑的ip
- 2)从机:进入配置文件,把bind选项修改为从机的ip
- bind 192.168.28.12
- slaveof 主机ip 6379
- 3)当配置完成后一定记得重启主从两个redis服务
- 4)主机连接:redis-cli -h 主机ip
- 5)从机连接:redis-cli –h 从机ip
- 6)在主的上面去设置值,在从的上面可以获取到值,代表主从设置完成
- 六、使用Python的redis驱动包和redis数据库交互
- 使用redis包里面的StrictRedis模块,创建连接对象
- 使用连接对象可以直接使用方法增删改查
- 增删改查的方法和终端命令方法相同。
- from redis import StrictRedis
- my_redis=StrictRedis(host="localhost",port=6379) host为安装有redis的机器的ip,默认端口为6379
redis 基本操作
最新推荐文章于 2024-08-14 19:28:11 发布