redis是非关系型数据库,也叫内存数据库。数据是键值对的形式,通过key查找value
安装Radis:6379
sudo apt-get update
sudo apt-get install redis-server
redis-cli # 启动redis
windows 安装redis 下载redis安装包 1.# 启动挂后天 ./redis-server.exe ./redis.windows.conf 2. ./redis-server.exe --service-install redis.windows-service.conf --loglevel verbose --service-name Redis 3. ./redis-server.exe --service-start
python连接redis 需要修改redis端口号
- sudo vim /etc/redis/redis.conf # 找到bind 改端口为 0.0.0.0
- netstat -ntl # 查看端口号,这是并没有变为 0.0.0.0
- sudo service redis-server restart # 需要重启服务
- netstat -ntl #现在端口就变成0.0.0.0了
五种数据类型:
- string 字符串
- list 列表
- hash 哈希
- set 集合
- zset 有序集合
1.# String的操作 # 设置字符串 set key value set name Which # 查看字符串 get key get name # 查看所有的键 keys * # 判断key 是否存在 exists key exists name # 查看建的类型 type keyxi type name # 给name追加值 append name 18 # 删除 del key del name # 同时设置多个str mset key value key1 value1 mset name Which age 18 address "潭州学院" # 同时查看多个key mget key key1... mget name age address # 设置过期时间 expire name 15 # 查看过期时间 ttl name # 运算 # +1 incr key incr age # -1 decr key decr age # + 整数 incrby key num incrby age 2 # - 整数 decrby key num decrby age 3
2.list
2.# list的操作 # 设置list # 左添加 lpush my_list 1 2 3 4 # 右添加 rpush my_list1 1 1 2 3 4 1 # 查看 lrange key start end lrange my_list 0 -1 lrange my_list1 0 -1 # 获得list元素个数 llen key llen my_list # 查看该位置上的元素是lindex 索引 lindex my_list 0 # 删除 # 左删除一个 lpop key lpop my_list1 # 右删除一个 rpop key rpop my_list1 # 指定删除 lrem key count value lrem my_list1 2 1 #左往右删除两次 1 # lrem my_list1 0 1 # count=0 删除所以的 1 # lren my_list1 -2 1 # 从右往左删除两次 1
3.hash
3.# hash # 设置 hset key field values hset account name Which # 获取 hget key field hget account name # 删除 hdel key field hdel account name # 设置多个 hmset key field value [field value] hmset user name Tom age 21 address school # 获取多个 hmget key field [field] hmget user name age address # 获取全部 hgetall key hgetall user # 获取field 的个数 hlen key hlen user
4.set
4. # set # 设置 sadd key value value1... sadd my_set 1 2 3 4 1 2 4 # 查看 smembers key smembers my_set # 删除 #指定删除 srem key member srem my_set 4 #随机删除 spop key spop my_set # 移动一个集合的member到另一个集合 smove oldkey newkey members sadd new_set 1 2 smove my_set new_set 3 # 判断集合中存在某个值 sismember key value sismember my_set 1 # 并集 sunion key1 key2 # 将key1 key3的并集合并到newkey sunionstore newkey key1 key2 # 差集 sdiff key1 key2 # 把key1 key2 的差集合并到newkey sdiffstore newkey key1 key2 # 获取集合的个数 scard key #随机返回一个 srandmember key
5.zset
5.zset # 设置 zadd key score member 索引+值 zadd z_set 111 D 3 S 1 G # 获取 #正序 zrange key strat stop zrange z_set 0 -1 #反序 zrevrange key start stop zrevrange z_set 0 -1 # 删除 zrem key member zrem z_set G zadd z_set1 2 b 5 d 3 c 1 a # 索引 # 正序 获得该元素在有序集合中的索引值 zrank key member zrank z_set1 a # 反序 zrevrank key member zrevrank z_set1 a # 查看有序集合元素数 zcard key zcard z_set1 # 返回在建表给的索引区间min-max之间的值的个数 zcount key min max zcount z_set1 1 2 # 查看建立zset给的索引score值 zscore member zscore z_set1 a
redis数据迁移:
1.开启appendonly
redis-cli -h 127.0.0.1 -a password config set appendonly yes
2.迁出appendonly.aof
redis-cli -h 127.0.0.1 -a password --pipe < appendonly.aof
3.关闭appendonly
redis-cli -h 127.0.0.1 -a password config set appendonly no
4.迁入appendonly.aof
redis-cli -h 127.0.0.1 -p 6379 -a password --pipe < appendonly.aof