04-reids 基本操作

redis 基本操作

进入redis

redis-cli   

#不能进入,就安装:
sudo apt-get update
sudo apt-get install redis-server

exit        #退出
Select 命令用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。
#默认使用 0 号数据库   默认开16个库
SELECT 1    # 使用 1 号数据库,Redis 现在的命令提示符多了个 [1]

redis五种数据类型、及操作

  • string 字符串
  • list 列表
  • hash 哈希
  • set 集合
  • sorted sets 有序集合

string

string 类型是 redis 最基本的类型, string 类型,一个 key 对应一个 value,一个 value 最大能存储512MB的数据。
  • set key value
    • 设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。

    • set name 'juhao'

  • get key
    • 返回key的值,若key不存在则返回nil
  • mset key value [key value..]
    • 为多组key设置值,该操作为原子操作,要么一组都设置成功,要么一组都设置失败;

    • mset username 'root' password '123' name 'juhao'

  • mget key [key…]
    • 返回一个或多个key的值,若key不存在返回nil,若key存在但不是字符串返回nil

    • mget username, password, name       #有,号会被认为是key的一部分
      mget username password name

  • append key value
    • 将指定的值追加到key末尾,若key不存在,则创建并赋值,返回追加后的字符串长度

    • append name love

  • ttl key
    • 返回key的剩余生存时间, -1 表示永久存在, -2表示不存在

  • set key value ex seconds
    • 设置 key的同时,设置过期时间(单位:秒) key 过期后将不再可用,会被系统自动删除。

    • set age 18 ex 20    
      或 setex key seconds value 例: ( setex sex 20 '男' )
  • persist key
    • 移除指定key的生存时间,成功返回1,若key不存在或不存在生存时间时返回0;

全局key操作

  • rename key newkey 改名

    • 当key和newkey相同或者key不存在时返回一个错误,当newkey已存在时则会覆盖;

    • keys *                 # 查看所有的key
      
      del key                    # 删除    返回成功的个数
      
      exists key             # 查看key是否存在  返回存在个个数
      
      type key               # 查看key类型
      
      expire key seconds     #设置过期时间 
      
      persist key                #移除过期时间
      
      flushdb                    #删除当前数据库中的所有key
      
      flushall               #删所有

list

列表的元素类型为string,
按照插入顺序排序
在列表的头部或者尾部添加元素
  • lpush key value[value…]

    • 在头部插入数据

    • “`python
      lpush key value #例 lpush my_list a b c d

      
      - 在尾部添加数据
      
      - ```python
      rpush  key  value     #例  rpush my_rlist a b c d
  • lindex key index

    • 返回列表中元素的值。index从0开始,当index超出索引时返回null

    • lindex my_list 3    #查看第三个

  • lrange key start stop

    • 查看索引范围内元素的值

    • lrange my_list 0 -1     #查看所有值
  • llen key

    • 返回列表的长度

  • lset key index newvalue

    • 指定索引号进行修改

    • lset my_list 0  'hello'

  • 删除

    • lpop key 删除左边第一个

    • rpop my_list

    • rpop key 删除右边第一个

    • rpop my_list

    • lrem key count value

    • 删除指定数量的value值

    • rpush  test_list  c a a b b c  d e a d f m c
      
      
      #count > 0 从左往右 删除数量为count的value
      
      例 : lrem test_list 2 a
      lrange test_list 0 -1
      
      
      #count = 0 删除所有的 value
      
      例 : lrem test_list 0 d,              
      
      
      #count < 0 从右往左 删除数量为count的value
      
      例 : lrem test_list -2 c

hash

是一个键值(key=>value)对集合。是string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象
field 域
value

设置/修改

  • hset key field value

    • 将field-value设置到hash表中,若key不存在会新建hash表再赋值,已存在则会覆盖;

    • hset user name juhao        #user { name:juhao}
  • hmset key field1 value1[field value…]

    • 同时设置多个

    • “`python

    user {name:juhao , age:18}

    hmset user name juhao age 18
    “`

查看

  • hget key field

    • 获取value

    • hget user name
  • hmget key field[field…]

    • 获取多个value

    • hmget user name age
  • hvals key

    • 获取全部value
  • hkeys key

    • 获取所有的field
  • hgetall key

    • 获取全部fieldvalue
  • hlen key

    • 查看有几个键值对
  • hexists key field

    • 判断hash表中指定域是否存在,返回1,若key或field不存在则返回0;

    • hexists user name

删除

  • hdel key field

    • python
      hdel user name

set

元素为string类型
无序集合
元素具有唯一性,不重复 
  • sadd key member [member…] 增加元素

    • 将一个或多个member元素加入到集合key中,若member已存在那么会忽略此元素,

    • sadd my_set m n b v c x z b

  • scard key

    • 返回集合key中元素的个数;
  • smembers key

    • 获取集合中所有元素
  • sismember key member 判断集合存在某个值

    • 判断member在key中是否已存在, 返回0或1
    • sismember my_set b
  • 删除

    • srem key member [member…]

    • 移除一个或多个元素,不存在的member会被忽略,返回被移除元素个数

    • srem my_set a b n 
    • spop key 随机删除

    • 移除并返回集合中的一个随机元素,当key不存在时返回NULL

  • 交集

    
    # sinter key1 key2 ..
    
    例
    sinter my_set my_set2

    把 key1 key2的交集合并到newkey

    
    # sinterstore newkey key1 key2
    
    例
    sinterstore  new_set my_set my_set2
  • 并集

    
    # sunion key1 key2 ...
    
    例
    sunion my_set my_set2
    

    把 key1 key2的并集合并到newkey

    
    # sunionstore newkey key1 key2
    
    例
    sunionstore new_set2 my_set my_set2
  • 差集

    
    # sdiff key1 key2
    
    sdiff my_set my_set2

    把 key1 key2的差集合并到newkey

    
    # sdiffstore newkey key1 key2
    
    例
    sdiffstore new_set3 my_set my_set2

zset

类似于Set,不同的是Sorted中的每个成员都分配了一个分数(Score)用于对其中的成员进行排序(升序)。
zset的成员是唯一的,但分数(score)却可以重复。

添加/修改

  • zadd key score member[ [score member] ..]

    • 设置, 存在就更新

    • “`python
      zadd my_zset 1 ‘one’
      zadd my_zset 2 ‘tow’

    zadd my_zset 10 one 20 two 30 three 40 four 50 ‘five’
    “`

查看

  • zscore key member

    • 查看score值

      zscore my_zset two

  • zrange key start stop[withscores]

    • 按索引返回key的成员, withscores表示显示score

    • zrange my_zset 0 -1   #显示全部
  • zrangebyscore key min max

    • 返回集合中 score 在给定区间的元素

    • zrangebyscore zset 10 30

删除

  • zrem key member [member…]

    • 移除有序集合中的一个或多个元素,若member不存在则忽略;

    • zrem my_zset two 

  • zremrangebyrank min max :

    • 删除集合中索引在给定区间的元素
    zremrangebyrank my_zset 1 3
  • zremrangebyscore min max :

    • 删除集合中 score 在给定区间的元素
    zremrangebyscore my_zset 10 30

redis配置

vim /etc/redis/redis.conf   #配置文件地址

port 6379                   # 默认端口    
logfile /var/log/redis.log   # 日志文件位置    
dbfilename dump.rdb         # RDB持久化数据文件名 ,  
dir /var/lib/redis          #指定本地数据库存放目录
bind 0.0.0.0                # 指定IP进行监听   

requirepass  yourpassword    #密码

save 900 1              #这三个是持久化,注释掉就关掉持久化
save 300 10
save 60 10000

启动/停止/重启命令

/etc/init.d/redis-server stop
/etc/init.d/redis-server start
/etc/init.d/redis-server restart

设置密码

config get requirepass      //获取当前密码
    #默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务

进入配置文件
    vim /etc/redis/redis.conf  
找到requirepass 设置密码
    vim 查找 /requirepass  按n查找下一个
    requirepass  yourpassword  //此处注意,行前不能有空格
重启redis
    redis-cli shutdown

进入在添加   auth 123456
登陆的时候加上密码 redis-cli -a 123456
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值